文档介绍:duilib源码分析DUiLib源码分析——----------------------------------------------------------------------------------分析约定:privateo-------私有的成员变量或方法protectx-------受保护的成员变量或方法public+-------公开的成员变量或方法-------------------------------------------------------------------------------------m_hWndPaint要CPaintManagerUI进行Direct绘图操作的窗体句柄o---m_hwndTooltip提示窗口句柄o---m_hInstance当前管理的Instance实例o---m_hResourceInstance当前管理的资源DLLInstance实例o---m_pStrResourcePath当前使用的资源路径o---m_pStrResourceZip当前使用的资源压缩包文件全称------------------------------------------------------CPaintManagerUI使用的资源绘图设备o---m_hDcPaint直接绘制到窗体的DC(为窗体的整个区域包括费客户区)o---m_hDcOffscreen内存缓冲区绘图DCo---m_hDcBackground背景绘制(支持AlphaBackground时使用)位图o---m_hbmpOffscreenm_hDcPaint的后台作图画布o---m_hbmpBackground背景图片bmp------------------------------------------------------CPaintManagerUI用到的信息o---m_ToolTip提示消息typedefstructtagTOOLINFOA{UINTcbSize;//该结构体的大小sizeof(TOOLINFO)UINTuFlags;//附加标识类信息HWNDhwnd;//消息接受的窗体UINT_PTRuId;//控件IDRECTrect;//消息产生的区域位置HINSTANCEhinst;//消息接收的实例LPSTRlpszText;//提示消息LPARAMlParam;//*lpReserved;//}TOOLINFO标识类信息o---m_bShowUpdateRect是否显示更新区域o---m_bFirstLayout是否是首个布局o---m_bUpdateNeeded是否需要更新界面o---m_bFocusNeeded是否需要焦点o---m_bOffscreenPaint是否需要开双缓存绘图o---m_bAlphaBackground窗体背景是否需要支持Alpha通道(如png图片的半透明效果)o---m_bMouseTracking是否需要支持鼠标追踪o---m_bMouseCapture是否需要支持鼠标捕获控件信息o---m_pRootxml根节点解析成的对象,通常为各种Windowo---m_pFocus处于获得焦点状态的控件o---m_pEventHover处于鼠标悬停状态的控件o---m_pEventClick被鼠标点击的控件o---m_pEventKey接收键盘输入的控件位置记录信息o---m_pLastMousePos鼠标最新的位置o---m_szMinWindow设置窗体可以调整到的最小大小o---m_szMaxWindow窗体可以调整到的最大大小o---m_szInitWindowSize窗体初始化是的大小o---m_rcSizeBox窗体外边框区域的大小o---m_szRoundCorner窗体四角的圆角弧度o---aption窗体标题栏区域大小o---m_uTimerID当前定时器ID集合类信息o---m_aNotifiers能够接收通知的对象集合o---m_aTimers定时器集合o---m_aPreMessage预处理消息集合o---m_aPreMessageFilters预处理消息过滤器集合o---m_aMessageFilters消息过滤器集合o---m_aPostPaintControls发送绘制请求的控件集合o---m_aDelayedCleanup延迟清理的对象集合o---otify异步通知消息集合o---m_mNameHash名称HashMa