在读这篇博客的时候,可能您已经对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 的使用。