Duilib嵌入CEF出現視窗顯示不正常

2022-05-04 18:15:08 字數 811 閱讀 5576

參考資料:

**:**:

**:一、在實際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)
手動重新整理視窗

rect rect;

getwindowrect(hwnd, &rect);

invalidaterect(hwnd, &rect, true);//

重新整理視窗

duilib與CEF衝突問題

duilib與cef衝突問題 flyfish 關於嵌入式瀏覽器框架cef cef dom.h檔案中的定義是 cef virtual cefrefptrgetnextsibling 0 關於duilib引用了標頭檔案windowsx.h中的定義是 define getnextsibling hwnd ...

duilib 模態視窗

void cmaindlg dotask pdlg create 的引數1,開始寫成了null,子視窗彈出後,還可以操作主視窗.因為要彈出模態對話方塊,跟進 pdlg showmodal 看到了duilib禁止主視窗的 才想到引數1應為父視窗視窗控制代碼.可以看出,當要彈出非模態視窗時,可以將pdl...

duilib虛擬視窗使用

方便每乙個tablayout的介面都可以用乙個類去處理 避免將所有的訊息寫到同乙個主視窗類中 方便維護 主視窗 建構函式中新增 cetcdmainwnd cetcdmainwnd xml配置 類中新增訊息處理類的成員變數 cpatmanagepage m patmanagepage 訊息處理類的宣告...