首先整理了一份Duilib的整体设计图:
接下来我们从几个方面学习Duilib库:1.库的组成;2.基本框架流程;3.元素创建机制;4.消息处理机制;
一.Duilib库的基本组成
1.1 工具库
由于duilib没有对外部的任何库进行依赖,所以在其内部实现了很多用于支撑项目的基础类。这些类分布在Util文件夹中:
UI相关(基本绘图元素):CPoint、CSize、CRect;
简单类型容器:CStdPtrArray、CStdValArray 、CStdString 、CStdStringPtrMap
其它工具:XUnZip、std_image
窗口工具:WindowImplBase?
1.2 控件库
具体控件可以从整体框架图上看到,控件库在duilib的实现中被分为了两块:Core和Control:
(1)Core中包含的是所有控件公用的部分,里面主要是一些基类和绘制的封装。
(2)Control中包含的就是各个不同的控件的行为了。
这当中尤其要注意控件基类CControlUI和容器基类CContainerUI,这是duilib核心类中是很重要的两部分