DuiLib窗口是自己處理繪制窗口的事件的, 而CEF也是這樣, 所以, 這兩套繪制機制放在一起是會沖突的.
也就是說, 如果你用DuiLib窗口的一部分當做CEF的繪制區域, 就會出現CEF窗口不斷閃動的問題, 因為DuiLib的繪制事件導致CEF的重繪, 而兩套機制不是很兼容.
道理只能講到這種程度了, 隨着理解的深入, 我會給出更詳細的介紹.
至於解決辦法, 就是把兩者的繪制隔離起來.
我為CEF單獨創建了一個子窗口, 在子窗口中進行CEF內容的繪制.
但是有個問題是, 父窗口的重繪, 一般也會導致子窗口的重繪, 還是會出現CEF窗口閃爍的問題, 直到..
我發現WS_CLIPCHILDREN這個窗口屬性, 也就是說, 在父窗口重繪是會剔除子窗口占據的區域.
這樣, 給DuiLib窗口設置了這個屬性, 然后創建一個子窗口, 在子窗口里面創建CEF窗口就ok了.
關鍵就是, 把兩套繪制引擎的繪制流程隔離.