mfc 集成cef3消息循环 详细代码
时间: 2023-09-20 19:04:40 浏览: 60
下面是一个示例程序,展示了如何在 MFC 中集成 CEF3 的消息循环:
```
#include "stdafx.h"
#include "MyApp.h"
#include "MyFrame.h"
CMyApp theApp;
BOOL CMyApp::InitInstance()
{
// 初始化 CEF3 的设置
CefMainArgs main_args(GetModuleHandle(NULL));
CefRefPtr<CefApp> app(new CMyApp);
CefInitialize(main_args, app, NULL);
// 创建主窗口
CMyFrame* pFrame = new CMyFrame;
if (!pFrame->LoadFrame(IDR_MAINFRAME))
return FALSE;
m_pMainWnd = pFrame;
// 创建 CEF3 的浏览器对象
CefWindowInfo window_info;
window_info.SetAsChild(pFrame->GetSafeHwnd(), CRect(0, 0, 800, 600));
CefBrowserSettings browser_settings;
CefRefPtr<CefClient> client(new CMyClient);
CefBrowserHost::CreateBrowser(window_info, client, _T("http://www.baidu.com"), browser_settings, NULL);
// 运行消息循环
Run();
// 关闭 CEF3
CefShutdown();
return TRUE;
}
void CMyApp::Run()
{
CefRefPtr<CefMessageLoop> message_loop = CefMessageLoop::GetForCurrentThread();
while (!m_bExit)
{
message_loop->Run(); // 运行 CEF3 的消息循环
CWinApp::OnIdle(); // 处理 MFC 的空闲消息
}
}
int CMyApp::ExitInstance()
{
// 关闭 CEF3 的浏览器对象
browser->CloseBrowser(true);
browser = NULL;
// 停止 CEF3 的消息循环
CefQuitMessageLoop();
return CWinApp::ExitInstance();
}
```
在上面的示例程序中,我们在 MFC 应用程序的 InitInstance 函数中创建了 CEF3 的浏览器对象,并在 Run 函数中加入了 CEF3 的消息循环。在 ExitInstance 函数中关闭了 CEF3 的浏览器对象,并停止了 CEF3 的消息循环。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)