Duilib学习笔记《04》— 窗体显示
来源:互联网 发布:单片机呼吸灯程序 编辑:程序博客网 时间:2024/06/05 16:35
在前面已经了解了duilib控件以及界面布局相关内容,接下来就要考虑该如何将xml中描述的布局通过界面展现出来。实际上在 Duilib学习笔记《01》 中我们已经简单提到过基本的流程及元素创建机制。这里我们直接用 Duilib学习笔记《03》最后提供的代码,下面我们就具体来说明:
一. duilib调用设置
在duilib中,所有的窗口均继承自CWindowWnd类,在CWindowWnd类中由虚函数HandleMessage来处理Windows消息(如WM_CREATE、WM_SIZE等等),所以对于本例的窗体类,同样需要继承CWinowWnd,同时窗体类中需要重写虚函数HandleMessage用于Windows消息的处理。
而对于duilib,我们此时更关心是界面元素是如何创建显示出来的。实际上,在Create创建窗体类时会触发WM_CREATE消息,这个消息也就都由窗体类中的HandleMessage函数来处理,具体可查看示例代码窗体类中该函数。WM_CREATE消息对应的消息处理函数OnCreate:
在窗体类的OnCreate函数中加载窗体对应的XML布局文件并动态创建界面元素。
三. 入口函数——初始化并创建显示窗口类
(注:这里知识粗略提一下,具体的在Duilib源码分析系列再具体说明)
实际上,经过上述操作后就已经可以显示出界面效果了。但这里,对第二步中关于XML文件的加载额外补充说明一下。
CPaintManagerUI::窗口消息及图形绘制管理器类。
CDialogBuilder: 创建控件类,分析脚本并用递归方式(_Parse函数)创建所有控件实例。
在m_pm.AttachDialog操作中,duilib中内部处理:
-> InitControls (初始化控件)-> FindControl-> __FindControlFromNameHash->pManager->m_mNameHash.Insert(把控件插入到Hash中)
至此,界面已经可以显示出来了,而如何进行事件处理、消息响应呢?在笔记《05》中再具体说明…
PS: 欢迎关注微信公众号:开发者小黑屋,分享优质技术干货。
1 0
- Duilib学习笔记《04》— 窗体显示
- Duilib学习笔记《04》— 窗体显示
- Duilib学习笔记《04》— 窗体显示
- Duilib学习笔记《04》— 窗体显示
- Duilib学习笔记《04》— 窗体显示
- Duilib学习笔记《06》— 窗体基类WindowImpBase
- Duilib学习笔记《06》— 窗体基类WindowImpBase
- Duilib学习笔记《06》— 窗体基类WindowImpBase
- Duilib学习笔记《06》— 窗体基类WindowImpBase
- Duilib学习笔记《06》— 窗体基类WindowImpBase
- Duilib学习笔记《01》— duilib整体框架认识
- Duilib学习笔记《01》— duilib整体框架认识
- Duilib学习笔记《01》— duilib整体框架认识
- Duilib学习笔记《01》— duilib整体框架认识
- Duilib学习笔记《01》— duilib整体框架认识
- Duilib学习笔记《01》— duilib整体框架认识
- Duilib学习笔记《02》— 界面布局
- Duilib学习笔记《03》— 控件使用
- 母函数有感(学习总结)
- 程序员容易发福的原因及解决办法
- 平台搭建2:ubuntu12.04下安装freesurfer
- css 表格
- Android和Java中的回调函数
- Duilib学习笔记《04》— 窗体显示
- Codeforces Round #318 [RussianCodeCup Thanks-Round] (Div. 2)D Bear and Blocks
- 学生信息管理系统总结(三)
- Huffman树基本原理介绍
- 121BestTimetoBuyandSellStock.java
- oracle 数据库索引的优缺点以及合理建立索引
- 基因数据处理34之使用samtools和bcftools进行变异分析
- 二叉树 先序遍历 中序遍历 后续遍历 java实现
- nyoj525 一道水题