在DuiLib开发的客户端里面使用CEF

来源:互联网 发布:淘宝店铺开通了 编辑:程序博客网 时间:2024/06/03 02:50

DuiLib窗口是自己处理绘制窗口的事件的, 而CEF也是这样, 所以, 这两套绘制机制放在一起是会冲突的.

也就是说, 如果你用DuiLib窗口的一部分当做CEF的绘制区域, 就会出现CEF窗口不断闪动的问题, 因为DuiLib的绘制事件导致CEF的重绘, 而两套机制不是很兼容.

道理只能讲到这种程度了, 随着理解的深入, 我会给出更详细的介绍.

至于解决办法, 就是把两者的绘制隔离起来.

我为CEF单独创建了一个子窗口, 在子窗口中进行CEF内容的绘制.

但是有个问题是, 父窗口的重绘, 一般也会导致子窗口的重绘, 还是会出现CEF窗口闪烁的问题, 直到..

我发现WS_CLIPCHILDREN这个窗口属性, 也就是说, 在父窗口重绘是会剔除子窗口占据的区域.

这样, 给DuiLib窗口设置了这个属性, 然后创建一个子窗口, 在子窗口里面创建CEF窗口就ok了.

关键就是, 把两套绘制引擎的绘制流程隔离.

 

1 0
原创粉丝点击