概要
CEF源码下载:https://bitbucket.org/chromiumembedded/cef/downloads/?tab=branches
CEF已编译文件下载:https://cef-builds.spotifycdn.com/index.html
其中包括已编译的libcef.lib及其他必要文件,参考目录下的README.txt文件;需要把Release和Resoueces中的文件放到执行目录下。同时包括libcef_dll源码及编译环境,编译参考该目录下的CMakeLists.txt文件。编译libcef_dll需要先用CMake(https://cmake.org/download/)生产编译环境,然后用VS进行编译就可以了
- 执行 cmake -G “Visual Studio 11” .. (使用VS2012)
集成
CXXXApp
CXXXApp::InitInstance调用
bool CXXXApp::InitializeCef()
{
//return true;
// Initialize Chrome
m_CefApp = new CefMfcCefApp;
CefMainArgs mainargs(m_hInstance);
void* sandbox_info = NULL;
// See if this is a Chrome process starting. If so, we're done with our (and MFC) initialization.
const auto exit_code = CefExecuteProcess(mainargs, NULL, sandbox_info);
if (exit_code >= 0)
return false;
CefSettings settings;
settings.multi_threaded_message_loop = false;
settings.no_sandbox = true;
return CefInitialize(mainargs, settings, m_CefApp.get(), nullptr);
}
CXXXApp::ExitInstance()调用
void CXXXXApp::UninitializeCef()
{
CefShutdown();
}
消息循环,重载PumpMessage
不调用会导致无法显示网页内容
BOOL CUniOPMClientApp::PumpMessage()
{
BOOL ret = __super::PumpMessage();
// Cef Message
CefDoMessageLoopWork();
return ret;
}
将CCefBrowserEventHandler集成到工程中
此类主要实现CefClient,可以通过多层继承控制/访问其他接口
后续直接使用此类进行实例化
集成到CDialog
CefRefPtr
初始化 CXXXDialog::OnInitDialog()
CefRefPtr<CCefBrowserEventHandler> client(new CCefBrowserEventHandler(this));
m_pClient = client;
CRect rt;
GetClientRect(&rt);
CefWindowInfo windowInfo;
windowInfo.SetAsChild(GetSafeHwnd(), rt);
CefBrowserSettings browserSettings;
CefBrowserHost::CreateBrowser(windowInfo, client, (LPCTSTR)m_szSSOUrl, browserSettings, NULL);
大小变化 void CXXXDialog::OnSize(UINT nType, int cx, int cy)
if (m_pClient.get())
{
CefRefPtr<CefBrowser> browser = m_pClient->GetBrowser();
if (browser)
{
CefWindowHandle hWnd = browser->GetHost()->GetWindowHandle();
::MoveWindow(hWnd, 0, 0, rect.Width(), rect.Height(), TRUE);
}
}
窗口关闭时 void CXXXDialog::OnClose()
if (m_pClient.get())
{
bool force_close = true;
m_pClient->CloseAllBrowsers(force_close);
}
集成修改manifest文件
文档更新时间: 2023-09-22 20:08 作者:方杰