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

Duilib源码分析(四)绘制管理器—CPaintManagerUI

时间:2015-11-30 23:39:53      阅读:266      评论:0      收藏:0      [点我收藏+]

标签:

接下来,分析uilib.h中的UIManager.h,在正式分析CPaintManagerUI前先了解前面的一些宏、结构;

  枚举类型EVENTTYPE_UI:定义了UIManager.h中事件通告类型TEventUI结构中的各Type值,从UIEVENT__FIRST至UIEVENT__LAST分别定义了  键盘按键事件

  (UIEVENT__KEYBEGIN~UIEVENT__KEYEND)、鼠标事件(UIEVENT__MOUSEBEGIN~UIEVENT__MOUSEEND)、以及其他的几个事件;  

  UIFLAG__XXX:宏定义了UIFLAG_TABSTOP(TAB支持)、UIFLAG_SETCURSOR(光标支持)、UIFLAG_WANTRETURN(返回值支持)提供CControlUI::GetControlFlags返回控件的标识,

    UIFIND_XXX:提供了FindControl接口的标识;

  UISTRETCH_XXX:提供了CDialogLayout扩展标识,目前未用到;

  UISTATE_XXX:提供了控制控件绘图相关的标识;

    TFontInfo:字体信息结构,hFont:字体句柄,sFontName:字体名称,iSize:字体宽度大小,bBold:字体加粗,bUnderline:字体下划线,bItalic:字体斜体,tm:当前的hFont下字体信息;

  TImageInfo:图片信息结构,hBitmap:图片句柄,nX:图片宽度,nY:图片高度,alphaChannel:是否支持alpha通道,sResType:restype资源类型,dwMask:图片掩码值;

  TEventUI:控件事件UI结构,作为控件的通告消息,Type:事件类型(EVENTTYPE_UI),pSender:当前事件控件发起者,dwTimestamp:时间戳,ptMouse:鼠标单击位置,chKey:按键

  字符,wKeyState:按钮状态(弹起、按下),wParam、lParam:附加信息;

  TRelativePosUI:父窗口相对位置结构,bRelative:是否为相对位置,szParent:父窗口大小,nMoveXPercent、nMoveYPercent:相对坐标移动位置百分比(调整left、top),nZoomXPercent、

  nZoomYPercent:相对坐标放缩位置百分比(调整bottom、right);

  INotifyUI:通告消息监听者,用以对通告消息分发;

  IMessageFilterUI:消息滤波器,用以对一些感兴趣的消息过滤、预处理;

  ITranslateAccelerator:翻译加速器,处理快捷键、tab等消息,目前仅用在UIWebBrowser.h中,CPaintManagerUI中的TranslateMessage负责对添加到的翻译加速器m_aTranslateAccelerator

  的容器进行遍历处理;

  typedef CControlUI* (*LPCREATECONTROL)(LPCTSTR pstrType);声明的函数,用在用户自定义的创建控件工厂中,用户可通过加载插件的方式来创建指定名称的自定义控件(继承于CControlUI);

  CPaintManagerUI:绘制管理器类,处理了大部分的绘制工作、控件消息分发处理;以下依次按照顺序函数或数据成员进行分析;

    CPaintManagerUI:构造函数,内部。。。(待完善)

  

  

Duilib源码分析(四)绘制管理器—CPaintManagerUI

标签:

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

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