参考资料:https://www.aliyun.com/zixun/wenji/1247250.html
转载:https://www.cnblogs.com/gongxijun/p/4857977.html
转载:https://www.cnblogs.com/jackiesteed/articles/3343012.html
转载:https://www.zhaokeli.com/article/8385.html
一、在实际CEF项目开发中,点击运行客户端时,会出现CEF窗口网页加载显示不全
DuiLib窗口是自己处理绘制窗口的事件的, 而CEF也是这样, 所以, 这两套绘制机制放在一起是会冲突的.也就是说, 如果你用DuiLib窗口的一部分当做CEF的绘制区域, 就会出现CEF窗口不断闪动的问题, 因为DuiLib的绘制事件导致CEF的重绘, 而两套机制不是很兼容。
至于解决办法, 就是把两者的绘制隔离起来.
我为CEF单独创建了一个子窗口, 在子窗口中进行CEF内容的绘制.
二、Cef+MFC页面覆盖(页面不刷新现象),而不能显示的问题,摸索了好久,发现原来是cef和MFC中对话框中的刷新前后不一样造成的。
所以去研究了对话框的重绘之后,发现其实只需要,虚函数OnEraseBkgnd重写,改成这样之后,便不会出现页面覆盖。
.h
virtual BOOL OnEraseBkgnd(CDC* pDC);
.cpp部分
在映射部分手动加载:
ON_WM_ERASEBKGND()
BOOL MMenu::OnEraseBkgnd(CDC* pDC){ //return TRUE; return FALSE; }
手动刷新窗口
RECT rect; GetWindowRect(hWnd, &rect); InvalidateRect(hWnd, &rect, TRUE);//刷新窗口