CEF方面的研究(三) 将CEF嵌入MFC对话框程序

来源:互联网 发布:软件研发团队介绍 编辑:程序博客网 时间:2024/05/16 13:41

前一段时间由于太忙,没有来得及更新。后来又遇到各种各样的问题,经过几经折腾吧,总算是搞定了。

前面已经讲到如何编译出libcef_dll_wrapper.lib的库,今天咱们来看下将CEF嵌入MFC对话框。

一、先建立一个MFC对话框的工程。在工程配置中,配置好与上一章配置libcef_dll_wrapper.lib相符的环境。比如我的就是:1、在共享DLL中使用MFC,2、运行库是:多线程调试 DLL (/MDd)。3、预处理器:_WIN64等等。

二、在工程配置中将源码提供的include文件夹路径和要引入的lib路径,还有就是指定exe生成的路径(该路径应该有资源和DLL存在)。

三、DLG.cpp中的构造函数中可以进行对cefapp进行实例化。

CefMainArgs main_args(instance); 
int exit_code = CefExecuteProcess(main_args, this, NULL);  
if (exit_code >= 0)   
{  
// The sub-process has completed so return here.  
return exit_code;  
}  
CefSettings settings;  
settings.no_sandbox = true;
settings.single_process = true;  
settings.multi_threaded_message_loop = true;  
CefInitialize(main_args, settings, this, NULL); 

四、在OninitDialog中可以创建Browser

m_pClient_Handler = new ClientHandler(); 
m_pClient_Handler->SetCallBack(AFun);
m_pClient_Handler->SetJsCallBackName("NativeLogin");

// 创建CefBrowser
CefWindowInfo window_info;
CRect rt;
GetWindowRect(&rt);
window_info.SetAsChild(m_hWnd, rt);

CefBrowserSettings browser_settings;

std::string url;
url = "www.baidu.com";
return CefBrowserHost::CreateBrowser(window_info, m_pClient_Handler.get(), url, browser_settings, NULL);


五、在DLG的析构函数中可以使用cefshutdown来关闭CEF。

接下来我会给我代码的链接,里面没有资源,换了资源就能用,相信朋友们能力超群,应该可以搞定的。不然太大上传不了。(如果有需要能完美运行的具体代码请联系我QQ:592902419)

点击下载



0 0
原创粉丝点击