• 转:CEF嵌入到单文档mfc


    1.下载:
    http://www.magpcss.net/cef_downloads/下载cef binary 1.1364.1123 windows.zip(可能要翻墙,百度goagent教程,最好使用谷歌浏览器翻墙下载,因为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相关资源。


    翻墙查看参考地址如下: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);


  • 相关阅读:
    CalcIntegerLength
    ReadIniTest_GetPrivateProfileString
    map test
    逻辑判断
    AppDomain.Unload_MarshalByRefObject
    网络编程
    pymysql
    MySQL多表查询
    MySQL单表查询
    python3 中引用 HTMLTestRunner.py 模块的注意事项
  • 原文地址:https://www.cnblogs.com/dancheblog/p/4588153.html
Copyright © 2020-2023  润新知