码迷,mamicode.com
首页 > 其他好文 > 详细

Duilib源码分析(四)绘制管理器—CPaintManagerUI—(前期准备二)

时间:2015-11-03 00:28:36      阅读:300      评论:0      收藏:0      [点我收藏+]

标签:

  接下来,我们继续分析UIlib.h文件中余下的文件,当然部分文件可能顺序错开分析,这样便于从简单到复杂的整个过程的里面,而避免一开始就出现各种不理解的地方。

  UIManager.h:UI管理器,暂时放在后面介绍;

  UIBase.h:UI窗口相关,包括常用的窗口风格、窗口类风格的宏定义,调试相关,以及基本窗口类;

    首先宏定义了几个常用的窗口风格、窗口扩展风格和窗口类风格,以UI_WNDSTYLE_XXX和UI_CLASSSTYLE__XXX开头的;

    ASSERT采用的是CRT的_ASSERTE、DUI__Trace、DUI__TraceMsg用以调试、跟踪消息,不过注意DUI__Trace字符串长度不能超过300字节;

    CNotifyPump:消息通告泵,用以对消息分发、下发(主要是对继承树的各个添加到_messageEntries的消息映射遍历分发,并执行相应的处理函数),数据成员:m_VirtualWndMap:

    虚拟窗口的集合,类型CStdStringPtrMap可以较为快速查找,此外可能增加了虚拟窗口,此时便先对虚拟窗口分发,若处理则直接返回,否则再遍历主窗口,成员函数:AddVirtualWnd:

    添加虚拟窗口,参数strName、pObject分别为虚拟窗口名称与该虚拟窗口的消息通告泵对象,RemoveVirtualWnd:移除指定名称的虚拟窗口,NotifyPump:通告泵,实现真正的消息

    分发操作(先对虚拟窗口分发,再对主窗口遍历分发),LoopDispatch:循环分发消息(对消息继承树和_messageEntries遍历,并对应消息处理类型,调用执行相应的消息处理接口);

    CWindowWnd:基本窗口类,将Win32的创建窗口的主要过程进行了封装,一些控件可能会从它继承实现;先从数据成员:m_hWnd:窗口句柄,m_OldWndProc:早期的窗口消息

    处理函数地址,m_bSubclassed:是否为子类化的窗口类,成员函数:

Duilib源码分析(四)绘制管理器—CPaintManagerUI—(前期准备二)

标签:

原文地址:http://www.cnblogs.com/haomiao/p/4931955.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!