随笔分类 - Duilib/Uilib
Directui/UiLib 界面库相关
摘要:在《Duilib源码分析(一)整体框架》、《Duilib源码分析(二)控件构造器—CDialogBuilder》以及《Duilib源码分析(三)XML解析器—CMarkup》中我们已从粗略的角度去分析框架操作流程和消息流程,只能对其有基本的印象,此处我们将通过实际的举例分析,duilib创建的工...
阅读全文
摘要:接下来,继续分析duilib之UI布局Layout,目前提供的布局有:VerticalLayout、HorizontalLayout、TileLayout、TabLayout、ChildLayout分别为垂直布局、水平布局、平铺布局、TAB布局、子窗体布局; 一般项目中用得比较多的是垂直布局、...
阅读全文
摘要:接下来,分析uilib.h中的UIManager.h,在正式分析CPaintManagerUI前先了解前面的一些宏、结构; 枚举类型EVENTTYPE_UI:定义了UIManager.h中事件通告类型TEventUI结构中的各Type值,从UIEVENT__FIRST至UIEVENT__LAST分...
阅读全文
摘要:接下来,分析uilib.h中的WinImplBase.h和UIManager.h; WinImplBase.h:窗口实现基类,已实现大部分的工作,基本上窗口类均可直接继承该类,可发现该类继承于多个类,我们将对其父类逐一分析,然后整合分析该窗口实现基类,我们按照继承顺序开始 接下来的分析; C...
阅读全文
摘要:接下来,我们将继续分析UIlib.h文件中其他的文件, UIContainer.h, UIRender.h, WinImplBase.h, UIManager.h,以及其他布局、控件等; 1. UIRender.h:UI渲染器,其中cpp文件中,定义的ZIP压缩相关的数据结构,以及宏操作,与X...
阅读全文
摘要:接下来,我们继续分析UIlib.h文件中余下的文件,当然部分文件可能顺序错开分析,这样便于从简单到复杂的整个过程的里面,而避免一开始就出现各种不理解的地方。 1. UIManager.h:UI管理器,暂时放在后面介绍; 2. UIBase.h:UI窗口相关,包括常用的窗口风格、窗口类风格的宏...
阅读全文
摘要:上节中提到在遍历创建控件树后,执行了以下操作: 1. CDialogBuilder构建各控件对象并形成控件树,并返回第一个控件对象pRoot; 2. m_pm.AttachDialog(pRoot);m_pm.AddNotifier(this);将控件attach到CPaintMana...
阅读全文
摘要:上一节介绍了控件构造器CDialogBuilder,接下来将分析其XML解析器CMarkup; CMarkup:xml解析器,目前内置支持三种编码格式:UTF8、UNICODE、ASNI,默认为UTF8;CMarkupNode:xml节点类 先介绍CMarkup: XMLELEMENT: ...
阅读全文
摘要:上一节了解了大体流程,但是界面控件元素是如何被加载、解析、构建、管理、控件消息如何处理的呢?接下来我们将结合控件构造器进行分析; CDialogBuilder:控件构造器,主要用以解析xml配置文件并以此创建相应控件及相关属性。 类成员数据: m_xml:xml解析器,用以读取并解析x...
阅读全文
摘要:Duilib界面库是一款由杭州月牙儿网络技术有限公司开发的界面开源库,以viksoe项目下的UiLib库的基础上开发(此后也将对UiLib库进行源码分析);通过XML布局界面,将用户界面和处理逻辑彻底分离,极大地提高用户界面的开发效率。一般常用于开发小型项目Windows桌面客户端软件;其子窗口...
阅读全文