vs2010+cef3的90.6.0版实现把cef3嵌入到mfc窗口
初衷
以前用soui时,感觉嵌入的浏览器无法实现3d显示,就想换为cef3,但是一些例子都不是vs2010的,感觉比较复杂,也就一直没下决心研究一下。
这周有个用mfc搭的小测试软件,嵌入百度地图后还是无法显示3d效果,下定决心研究一下。
步骤大概就是先实现mfc下的cef3嵌入(同时带js调用);然后再实现soui界面库下的cef3嵌入(同时带js调用)。
为了便于以前项目升级,还是采取VS2010.
开始动手
(1)mfc 集成 cef3 生成 vs 工程及编译示例
按照上面的说明,从https://cef-builds.spotifycdn.com/index.html#windows32上下载最新的D:\cef_binary_90.6.0+g02ae459+chromium-90.0.4430.85_windows32,然后编译放到C:\cef3;
在vs2010中打开,D:\cef_binary_90.6.0+g02ae459+chromium-90.0.4430.85_windows32\tests\cefsimple\simple_app.cc中修改默认页,然后测试分别测试地图和图表的3D,一切ok
(2)CEF的例子都是直接显示到对话框的,看能不能把其对话框嵌入到主窗口中???
CEF3手把手入门教程-Chrome内核浏览器控件-----该例子只是把例子中窗口弹出而已
参考CEF3自研究笔记 三、将CEF嵌入到MFC对话框程序中去以及例子C:\test\MFCBrowser,ok
然后测试脚本----ok MFC集成CEF3窗口 CEF3开发者系列之JS与C++交互之二
界面
1、实现cef3嵌入到主窗口的一部分中功能
2、实现js调用
这里只是把经纬度坐标显示出来,实际上通过js调用,可以直接实现在百度地图的定位等操作。这个功能不论在纯mfc在还是在用了soui界面库的一些项目中都已经实现,目标就是在不改动调用js方式前提下换掉浏览器。
目前,cef3调用js方式和以前是一样的。
部分说明
cef3配置的简单化
看了很多大神的文章,感觉cef3配置太过于复杂,我这里就把cef3都放到一个文件内【其实文件夹名称最好加上版本号】。
CEF3\bin\x86\Debug来源于:
cef_binary_90.6.0+g02ae459+chromium-90.0.4430.85_windows32\Debug
CEF3\bin\x86\Release来源于:
cef_binary_90.6.0+g02ae459+chromium-90.0.4430.85_windows32\Release
CEF3\include来源于:
cef_binary_90.6.0+g02ae459+chromium-90.0.4430.85_windows32\include