【文件属性】:
文件名称:一点duilib界面库编程经验
文件大小:25KB
文件格式:DOCX
更新时间:2016-10-15 08:05:31
duilib 编程 经验
1.duilib简介
duilib是一个开源的DirectUI界面库,简洁但是功能强大。而且还是BSD的license,所以即便是在商业上,大家也可以安心使用。
现在大家可以从这个网站获取到他们所有的源码:/p/duilib/
为了让我们能更简单的了解其机制,我们按照如下顺序一步一步的来对他进行观察:
工具库:用于支撑整个项目的基础
控件库:这是dui最关键的部分之一,相信也是大家最关注的部分之一,另外这里也来看看它是如何管理这些控件的
消息流转:有了控件库,我们需要将Windows窗口的原生消息流转给这些控件,另外在这里也来看看Focus,Capture等等的实现
资源组织和皮肤加载:有了上面所有的这些,我们再来看看它是如何自动创建皮肤的
简单使用:最后,来看看到底要如何使用它
以下是duilib工程带的一副总体设计图,在看代码之前看看这幅图,对看代码会很有帮助。
duilib:
2.工具库
由于duilib没有对外部的任何库进行依赖,所以在其内部实现了很多用于支撑项目的基础类,这些类分布在Util文件夹中:
UI相关:CPoint/CSize/CDuiRect
简单容器:CStdPtrArray/CStdValArray/CStdString/CStdStringPtrMap
上面这些类看名字就基本能够理解其具体的含义了,当然除了基本的基础库,还有一些和窗口使用相关的工具的封装:
窗口工具:WindowImplBase,这个工具我们在这里不详述,后面会再次提到。
3.控件库
控件库在duilib的实现中被分为了两块:Core和Control:
Core中包含的是所有控件公用的部分,里面主要是一些基类和绘制的封装。
Control中包含的就是各个不同的控件的行为了。
Core部分和控件相关的类图非常简单:
duilib-core:
3.1.控件基类:CControlUI
CControlUI在整个控件体系中非常重要,它是所有控件的基类,也是组成控件树的基本元素,控件树中所有的节点都是一个CControlUI。
他基本包括了所有控件公共的属性,如:位置,大小,颜色,是否有焦点,是否被启用,等等等等。当然这个类中还提供了非常多的基础函数,用于重载来实现子控件,如获取控件名称和ClassName,是否显示,等等等等。
另外为了方便从XML中直接解析出控件的各个属性,这个类中还在提供了一个SetAttribute的方法,传入字符串的属性名称和值对特定的属性进行设置,内部其实就是挨个比较字符串去完成的,所以平时使用的时候就还是不要使用的...
网友评论
- 不错的界面库。下载学习学习!!!!!!