DuiLib窗口是自己处理绘制窗口的事件的, 而CEF也是这样, 所以, 这两套绘制机制放在一起是会冲突的.
也就是说, 如果你用DuiLib窗口的一部分当做CEF的绘制区域, 就会出现CEF窗口不断闪动的问题, 因为DuiLib的绘制事件导致CEF的重绘, 而两套机制不是很兼容.
道理只能讲到这种程度了, 随着理解的深入, 我会给出更详细的介绍.
至于解决办法, 就是把两者的绘制隔离起来.
我为CEF单独创建了一个子窗口, 在子窗口中进行CEF内容的绘制.
但是有个问题是, 父窗口的重绘, 一般也会导致子窗口的重绘, 还是会出现CEF窗口闪烁的问题, 直到..
我发现WS_CLIPCHILDREN这个窗口属性, 也就是说, 在父窗口重绘是会剔除子窗口占据的区域.
这样, 给DuiLib窗口设置了这个属性, 然后创建一个子窗口, 在子窗口里面创建CEF窗口就ok了.
关键就是, 把两套绘制引擎的绘制流程隔离.