在讀這篇博客的時候,可能您已經對duilib有必定的瞭解。因此,我並不打算對duilib進行過多的介紹。它的內核首先由外國人編寫,後來由國人一個小組接過來繼續編寫,因而就有了如今的Duilib。git
1.下載Duilibgithub
首先它託管在Google,後來不知道是否是因爲大陸將 Google 全面封鎖,將搜索引擎禁用了不算,還將技術網站都封閉了。因此,Duilib又託管到了 Github。因此在學習它以前,你須要學習如何利用Github,將Duilib下載到本地進行編譯、運行。windows
1)首先下載 GitHub for Windows. https://windows.github.com/編輯器
2)註冊一個賬號。函數
3)打開網站https://github.com/duilib/duilib工具
看到網站右邊的按鈕,如上圖的紅框處,點擊」Clone in Desktop」按鈕,保存到本身的賬號中,並能下載到本地中,保存到本地,主要是爲了便於即時更新。當Duilib有更新時,你能夠利用本地的Github工具進行更新。學習
4)打開本地的目錄。網站
如上圖右上角的紅框操做。ui
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 的使用。