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