转: CEF嵌入到单文档mfc

1.下载:
http://www.magpcss.net/cef_downloads/下载cef binary 1.1364.1123 windows.zip(可能要FQ,百度goagent教程,最好使用谷歌浏览器FQ下载,因为goagent有chrome的插件)


2.编译:
http://dev.chromium.org/developers/how-tos/build-instructions-windows(可能要搭建许多开发环境,考验你网速的时候到了)
如果没法编译,去我的资源下载,就是不知道能不能用。


3.资源使用:
 a.将资源CEF中的lib.zip中的两个库放到你的工程下面,并添加引用(方法:右键你的工程-》属性-》连接-》输入-》附加依赖项,点击编辑,将这两个lib的名字(包括扩展名)复制到里面,用空行分割两个库的名称)。
 b.将include.zip中的文件包括文件夹拷到你的工程下面,并添加应用(方法:右键你的工程-》添加-》存在的Item-》选中你复制进去的所有东西添加)
 c.将add.zip中的文件包括local文件夹拷贝到你编译好的Debug目录下,没这些东西运行不起来。


4.工程应用:
 参照:http://blog.csdn.net/yhangleo/article/details/8482603,其中遇到以下问题:
 首先自己要建立一个基于单文档的mfc工程。后经测试,使用基于对话框的工程也可以实现,同样添加Create方法和OnSize方法即可。
 a.程序中的m_cWebClient是一个CefRefPtr<WebClient2> m_cWebClient;这个定义到你的xxxView.h文件中。
 b.如果编译时遇到关于OnAfterCreated的什么错误(具体忘了),那么将virtual void OnAfterCreated(CefRefPtr<CefBrowser> browser)OVERRIDE;  改为:virtual void OnAfterCreated(CefRefPtr<CefBrowser> browser) {},这个在你建的WebClient.h文件中,你可能会名为其他名字。
 c.在xxxView.h中添加cef_app.h的引用,具体忘记是出了什么错误了,应该是什么东西没定义

 d.OnCreate函数和OnSize函数不要手工添加,可能会注册什么的导致不会执行,需要使用编译器提供的添加消息来操作。具体在类查看中右击你的xxxView类,点击属性,然后在属性里面添加消息。

 

5.补充一句,libcef.dll相关库有Release版本和Debug版本,两者大小相差很大,我之前就一直纳闷,怎么我的libcef.dll有100多M,而别人使用的才不到20M,后来发现我用的的debug版的,坑,故此另外上传一个Release版的libcef.dll相关资源。

 

FQ查看参考地址如下:http://it.nittis.ru/mfc-cef.html

 

另外:按照上述方法,我的网页显示不能充满整个窗口,解决办法:(CEF_MFC.cpp为工程名.cpp文件,CEF_MFC是我的工程名)

将设置对话框初始大小的代码放置在CEF_MFC.cpp中的InitInstance()中,而不是放置在View.cpp的Create()中,代码如下
        //设置对话框初始大小
CRect   temprect(0,0,1000,800);
m_pMainWnd->SetWindowPos(NULL,0,0,temprect.Width(),temprect.Height(),SWP_NOZORDER|SWP_NOMOVE);

posted on 2013-10-14 16:42  卡西大人  阅读(1325)  评论(0编辑  收藏  举报