MFC使用duilib的幾種方式

MFC流行了很多年的界面開發工具包,隨着時代的進步,UI設計也有很大的改變,以前中規中矩的UI界面也開始變得美觀漂亮起來。但是MFC受制於其繪製機制,做這些個性化的設計就力不從心了。最近幾年隨着DirectUI的流行,越來越多的產品開始使用這種技術來進行開發了。以DirectUI爲技術基礎的duilib類庫,以其簡單易用,功能不俗贏得了廣大程序員的青睞。新的項目可以從你個頭開始採用duilib開發,但是過去很多項目需要升級維護,要是重構很是浪費人力物力,於是採取了折中的方法:以MFC作爲框架,採用duilib來美化程序界面。下面就來簡單介紹一下,具體MFC和duilib都有哪幾種結合方式:

1、父子嵌套:MFC窗口作爲主窗口,創建duilib窗口作爲其子窗口來實現。這樣做需要把原來父窗口的一些和界面交互的邏輯移植到子窗口來實現,但是實現相對簡單,有很多開發使用這種方式;

2、反客爲主:創建duilib窗口爲主窗口,把原有的MFC窗口作爲一個普通的窗口控件來管理。實現方法:通過重載CControlUI維護一個HWND句柄,並通過SetVisible、SetEnabled和SetPos來進行窗口狀態的維護;

3、偷樑換柱:保持原有MFC窗口不變,通過Hook其窗口過程來接管其窗口繪製方式,這種方法不僅能完美解決界面繪製問題,而且還能保持原有的處理邏輯基本不需要改變,省時省力;


針對上述幾種方法,可以根據自己的項目特點來進行選擇,不過我自己最喜歡的就是第三種方式。所以下面提供第三種方式的使用例子:

1、截圖:


2、完整代碼請聯繫Troy(QQ:656067418)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章