Duilib教程-簡單介紹


在讀這篇博客的時候,可能您已經對duilib有一定的了解。所以,我並不打算對duilib進行過多的介紹。它的內核首先由外國人編寫,后來由國人一個小組接過來繼續編寫,於是就有了現在的Duilib。

 

1.下載Duilib

首先它托管在Google,后來不知道是不是由於大陸將 Google 全面封鎖,將搜索引擎禁用了不算,還將技術網站都封閉了。所以,Duilib又托管到了 Github。所以在學習它之前,你需要學習如何利用Github,將Duilib下載到本地進行編譯、運行。

 

1)首先下載 GitHub for Windows. https://windows.github.com/

2)注冊一個帳號。

3)打開網站https://github.com/duilib/duilib

 

看到網站右邊的按鈕,如上圖的紅框處,點擊”Clone in Desktop”按鈕,保存到自己的帳號中,並能下載到本地中,保存到本地,主要是為了便於即時更新。當Duilib有更新時,你可以利用本地的Github工具進行更新。

 

4)打開本地的目錄。

 

 

如上圖右上角的紅框操作。

 

2.編譯DUILIB

DuiDesigner.sln 這個文件是 XML 編輯器。

DuiLib.sln 這個是DUILIB 源文件及Demo源文件。

使用VS2008進行編譯。

 

3.Dui原理小解。

原來的WINDOWS界面,主要是要WND疊加組成,如:

 

每個WND都有自己的消息處理循環。這樣不好的地方是,

1)繪制不方便。比如你要在一個Button上繪制一張半透明的背景圖片,如果你使用了 MemDC,要處理透明繪制就會相當麻煩,甚至會有難以預測的BUG。

2)可以給病毒可趁之機。可以利用FindWindow查找Button的句柄,然后向它發送WM_LBUTTONDOWN和WM_LBUTTONUP消息,就可以實現單擊的效果。以前舊版的QQ就存在這個BUG。現在已經很少有這個BUG了。

 

Dui一個Wnd它的上面沒有多余的Wnd,所以的控件都是虛擬出來的,並不具備自己的消息循環,它們都用WND的消息循環。簡單的描述如下圖:

 

將消息傳遞到控件,主要就是通過 control_from_point 這樣的一個函數,通過鼠標的座標點進行判斷是哪個控件,並將由該控件進行響應鼠標消息。

 

Duilib 的簡單介紹就到這里了。

在學習一個東西的時候,我並不傾向於一開始就學習內核、源碼。我覺得首先應該學習如何何用它,當你會用它了,去理解它的內核代碼才會順暢,也才看得明白。

所以,下一節將介紹 UIDesigner 的使用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM