开发环境:win10+vs2015
本Demo只在release下运行!!!
我也是学习别的大佬的教程,我所用的cef版本文件都是这个大佬的,如果像学习怎样编译CEF3库,请见:这位大佬是如何编译的CEF的
如果要跑起来这个Demo,需要把Demo源码和cef编译后的文件下载下来,把下图1,2中的圈出来的cef文件路径改为cef编译后的文件解压出来的实际存放路径,如果不想改项目属性配置想偷懒,就把编译后的文件放在D盘(根目录),就可以正常跑起来。
cef编译后的文件
Demo源码下载
项目属性设置
1.
2.
3.
Demo源码代码
CefMfcDemoDlg.h
#pragma once
#include "SimpleClient.h"
// CCefMfcDemoDlg 对话框
class CCefMfcDemoDlg : public CDialogEx
{
// 构造
public:
CCefMfcDemoDlg(CWnd* pParent = NULL); // 标准构造函数
// 对话框数据
enum {
IDD = IDD_CEFMFCDEMO_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
CefRefPtr<CSimpleClient> m_simpleClient;
// 实现
protected:
HICON m_hIcon;
bool sandbox_info;
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnClose();
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnBnClickedBtnGo();
BOOL PreTranslateMessage(MSG * pMsg);//回车
afx_msg void OnBnClickedBtnForward();
afx_msg void OnBnClickedBtnBack();
};
CefMfcDemoDlg.cpp
// CefMfcDemoDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "CefMfcDemo.h"
#include "CefMfcDemoDlg.h"
#include "afxdialogex.h"
#include "include/cef_app.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CCefMfcDemoDlg 对话框
CCefMfcDemoDlg::CCefMfcDemoDlg(CWnd* pParent /*=NULL*/)
: CDialogEx(CCefMfcDemoDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CCefMfcDemoDlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CCefMfcDemoDlg, CDialogEx)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_WM_CLOSE()
ON_WM_SIZE()
ON_BN_CLICKED(IDC_BTN_GO, &CCefMfcDemoDlg::OnBnClickedBtnGo)
ON_BN_CLICKED(IDC_BTN_FORWARD, &CCefMfc