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

最新文章

  1. Android Weekly Notes Issue #229
  2. CentOS 6.5 Python Image Library 配置
  3. activitygroup下的activity不回调onactivityresult的解决方法
  4. nyoj 708 ones 动态规划
  5. XAMPP环境下用phpStorm+XDebug进行断点调试的配置
  6. Java 数据类型转换(转换成字节型)
  7. 一键保存网页为PDF
  8. css之选择器总结
  9. ES6新特性之生成器函数 (generator function): function*
  10. spring aop 动态代理批量调用方法实例
  11. geoserver发布地图服务WMS
  12. Visual Studio总是在重新生成项目?
  13. js 动态添加class封装(es6语法)
  14. (转)聊聊Greenplum的那些事
  15. Fescar: Fast & Easy Commit And Rollback
  16. solr安装配置(一)
  17. C#中的BeginInvoke和EndEndInvoke 异步问题
  18. Redis 安装、配置、集群
  19. 20145221高其_PC平台逆向破解_advanced
  20. 解决VS2010中工具箱里没有WPM

热门文章

  1. win7 linux双系统删除linux
  2. nginx 反向代理做域名转发简单配置
  3. PHP-PHP常见错误
  4. HTML5学习笔记 视频
  5. etymology-F
  6. Cocos2d-X中的ZORDER和Tag
  7. unity, 不要用TextMesh,用图片代替
  8. mysql操作索引的sql语句
  9. DockPanel的使用
  10. 小马哥课堂-统计学-z分数