嵌入应用程序的时候,使用CefRunMessageLoop会阻塞进程,设置CefSettings.multi_threaded_message_loop = true(仅限windows下使用),这将导致CEF运行在浏览器UI线程,该UI线程是从主应用程序分离出来的线程
CEF有多个进程:
render进程
plugin进程
GPU进程
ETC进程
CefEnableHighDPISupport()
windows7或者更高版本系统中,在进程启动时设置High-DPI为启用状态。而低版本的windows系统对DirectWrite和DPI支持不好(设置这个不会有什么作用)
如果出现打开的网页不能填满窗口的问题,要么不要使用CefEnableHighDPISupport()这个接口函数,要么去设置网页的缩放比例。
设置网页的缩放大小使用SetZoomLevel(double zoomLevel)这个函数,执行渲染之前,在UI线程中,使用这个函数重置缩放比例,可以立即生效
CefExecuteProcess()
启动多进程,多进程模式下,如果配置不正确,会出现程序不加载网页,出现多个对话框
如果是子进程,这里会返回,不会在执行下面的代码,所以创建自己的窗口一定要在此函数调用之后创建,这样不会在子进程再执行一次创建。
URL加载不出来的问题:
属性->生成事件->命令行
setlocal
mt.exe -nologo -manifest "$(OutDir)xxx.exe.manifest" "$(OutDir)compatibility.manifest" -outputresource:"$(OutDir)xxx.exe";#1
if %errorlevel% neq 0 goto :cmEnd
:cmEnd
endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
:cmErrorLevel
exit /b %1
:cmDone
if %errorlevel% neq 0 goto :VCEnd
原因:https://docs.microsoft.com/zh-cn/windows/win32/sysinfo/targeting-your-application-at-windows-8-1