怎样在duilib 设置焦点中设置超链接,用什

duilib 超链接网页
  随即便床上下来,伸了一个大大的duilib 超链接网页懒腰,然后才饶有兴趣的duilib 超链接网页打量着房间,问男孩,“这是哪啊。”  男人在短暂的duilib 超链接网页愣神后,忽然爬起来,朝着山贼头子冲去,“我要杀了你”。  一个村民便跑去忙活了,很快,一杯热腾腾的duilib 超链接网页热茶便摆在了楼路的duilib 超链接网页面前。  女人羞愤难当,立马往酒馆后方跑去。  “才刚刚领悟到线啊”。男子微微一笑,脚下一动,又一剑劈上去。  身影笼罩在黑色的duilib 超链接网页披风中,没入黑暗竟就像是消失了,只能模糊的duilib 超链接网页看见一道身影在移动着。  “这群人可真笨”。黑暗中传出鬼盗的duilib 超链接网页嘲讽声。但随即便想起银铃般的duilib 超链接网页笑声,显然鬼盗也是十分喜悦的duilib 超链接网页。  “找到就好”。古堡主人松了一口气,然后朝老人摆摆手,摇摇头,“连我都不小心着了道,何况是你”。  “哎”,女孩伸手便要去抓住盔甲,却没有抓住,反倒因为阿黄的duilib 超链接网页猛甩,整个人被甩了出去。  林老说完了,饭也有些冷了,但林老丝毫没有介意,吃着冷饭也津津有味。  ‘铛’。时刻提防着马贼的duilib 超链接网页一个受伤的duilib 超链接网页叛乱军挡住了那刀,却因为承受不了马贼首领的duilib 超链接网页力量而倒飞出去。  随即盯着楼路,思考起来。  “没事,没事”。静静赶紧笑着道,“你们去忙吧,我就是看他太可恶”。  “求你了”,马贼首领听到自己的duilib 超链接网页声音道。  “咦,还是晚上啊,那在睡会”。楼路睁眼见到黑暗,顿时又觉得困了。  夏天的duilib 超链接网页眼睛在黑暗中显得十分明亮。  “怎么了”,静静连忙过去浮起。  当看到那把小锁的duilib 超链接网页时候,静静的duilib 超链接网页眼睛便一亮,眼睛瞬间转动起来,随即一笑,想到一个好主意。  “这场叛乱...就是安古...发起的duilib 超链接网页”。  “哎呀,这不是小楼的duilib 超链接网页狗,怎么在这”。  “恩”,高大身影顿时皱起眉,怎么会在上空爆炸,这不符合他的duilib 超链接网页预计。  酒嫌则趁势赶紧站起,拉开与楼路的duilib 超链接网页距离。但当他刚刚站起,一道身影便出现在他的duilib 超链接网页面前。  忙了一整天,才勉强忙完。  夏天看了楼路一眼,沉默下去,微微摇摇头。  夏天哪里反正不容易得手。  “我最多等十天”。夏天道。 楼路的duilib 超链接网页声音响亮,回荡在他们耳边。  却看到楼路飘到三五米的duilib 超链接网页高度的duilib 超链接网页时候,忽然一扭,空中的duilib 超链接网页风忽然乱了起来,发出几声轻响,震荡传到楼路的duilib 超链接网页身上,可以看见楼路的duilib 超链接网页身体动了动,便落了下来,然后一手抓住一个,将二人的duilib 超链接网页头一撞,两个人都晕晕的duilib 超链接网页倒地了。  推车内的duilib 超链接网页商品大概不多,铁滑道上已经摆满了商品,三个人便推着推车转身离去,而排在下面的duilib 超链接网页三人便走了上来。
责编:赵明丽& DrawGradient()
&&& 功能 - 绘制渐变
&&& hDC - 设备句柄
&&& rc - 对象区域
dwFirst - 颜色1
dwSecond - 颜色2
&&& bVertical - 渐变方向 true垂直 false水平
&&& nSteps - 步长 [使用GradientFill() API时无效]
&&& 实现 -
&&&&& 1 渐变填充
&&&&& 2 alpha混合
& DrawLine() - 绘制直线
& DrawRect() - 绘制矩形
& DrawRoundRect() - 绘制圆角矩形
& DrawText() - 绘制文字
& DrawHtmlText()
&&& 功能 - 绘制 &mini-html& 标识字符串
&&& hDC - 设备句柄
&&& pManager - 绘制管理者
&&& rc - 对象区域
&&& pstrText -& &mini-html& 标识字符串
&&& dwTextColor - 字符串类型
&&& pLinks - 产生链接效果的区域组
&&& sLinks - 产生链接效果的区域组数量
&&& nLinkRects - 产生链接效果的区域组数量
&&& uStyle - 类型,同DrawText() Format Flags
& GenerateBitmap()
&&& 功能 - 产生一个BMP位图
&&& pManager - 绘制管理者
&&& pControl - 控件句柄
&&& rc - 对象区域
&&& 返回 - BMP句柄
===============update
7 class INotifyUI - Listener interface
8 class IMessageFilterUI - MessageFilter interface
9 class CPaintManagerUI
* 绘制管理者
&& Init() - 初始化
&& NeedUpdate() -
&& Invalidate() - InvalidateRect API的封装
&& GetPaintDC() - 设备句柄相关函数
&& GetPaintWindow() - 得到窗口句柄
&& GetTooltipWindow() - 得到提示窗口句柄
&& GetMousePos() - 得到鼠标位置
&& GetClientSize() - 得到客户端区域大小
&& 获取/设置 窗口初始化时大小
&&&& GetInitSize()
&&&& SetInitSize()
&& 获取/设置 托腮大小
&&&& GetSizeBox()
&&&& SetSizeBox()
&& 获取/设置 标题区域大小
&&&& GetCaptionRect()
&&&& SetCaptionRect()
&& 获取/设置 圆角大小
&&&& GetRoundCorner()
&&&& SetRoundCorner()
&& 获取/设置 大小的最小限制
&&&& GetMinInfo()
&&&& SetMinInfo()
&& 获取/设置 大小的最大限制
&&&& GetMaxInfo()
&&&& SetMaxInfo()
&& 设置透明度
&&&& SetTransparent()
&& 设置背景是否使用透明属性
&&&& SetBackgroundTransparent()
&& 获取/设置 刷新区域属性
&&&& IsShowUpdateRect()
&&&& SetShowUpdateRect()
&& 获取/设置 应用程序对象实例句柄
&&&& GetInstance()
&&&& SetInstance()
&& 获取 可执行程序所在路径
&&&& GetInstancePath()
&& 获取/设置 当前工作目录
&&&& GetCurrentPath()
&&&& SetCurrentPath()
&& 获取/设置 资源动态库句柄
&&& GetResourceDll()
&&& SetResourceDll()
& 获取/设置 资源路径
&&& GetResourcePath()
&&& SetResourcePath()
& 获取/设置 资源压缩包文件名
&&& GetResourceZip()
&&& SetResourceZip()
& 使用绘制管理者的根绘制管理者的资源设置 - 循环得到父绘制管理者直到找到最顶层的绘制管理者
&&& UseParentResource()
& 得到绘制管理者
&&& GetParentResource()
& 获取/设置 非可用状态文字颜色
&&& GetDefaultDisabledColor()
&&& SetDefaultDisabledColor()
& 获取/设置 默认字体颜色
&&& GetDefaultFontColor()
&&& SetDefaultFontColor()
& 获取/设置超链接默认字体颜色
&&& GetDefaultLinkFontColor()
&&& SetDefaultLinkFontColor()
& 获取/设置 鼠标漂浮在链接上时默认字体颜色
&&& GetDefaultLinkHoverFontColor()
&&& SetDefaultLinkHoverFontColor()
& 获取/设置 选中后背景颜色
&&& GetDefaultSelectedBkColor()
&&& SetDefaultSelectedBkColor()
& 获取/设置 默认字体
&&& GetDefaultFontInfo()
&&& SetDefaultFont()
& 字体列表操作
&&& DWORD GetCustomFontCount() - 得到字体列表中项数量
&&& HFONT AddFont(LPCTSTR pStrFontName, int nSize, bool bBold, bool bUnderline, bool bItalic) - 加入一种字体到字体列表中
&&& HFONT AddFontAt(int index, LPCTSTR pStrFontName, int nSize, bool bBold, bool bUnderline, bool bItalic) - 加入一种字体到字体列表的指定位置
&&& HFONT GetFont(int index) - 按序号得到字体列表中的字体
&&& HFONT GetFont(LPCTSTR pStrFontName, int nSize, bool bBold, bool bUnderline, bool bItalic) - 按字体属性得到字体列表中的字体
&&& bool FindFont(HFONT hFont) - 按句柄查找字体列表中的一项
&&& bool FindFont(LPCTSTR pStrFontName, int nSize, bool bBold, bool bUnderline, bool bItalic) - 按属性查找字体列表中的一项
&&& bool RemoveFont(HFONT hFont)& - 按句柄移除字体列表中的指定项
&&& bool RemoveFontAt(int index) - 按序号移除字体列表中的指定项
&&& void RemoveAllFonts() - 移除字体列表中的所有项
&&& TFontInfo* GetFontInfo(int index) - 按序号得到字体列表中项的属性
&&& TFontInfo* GetFontInfo(HFONT hFont) - 按句柄得到字体列表中项的属性
& 图片列表操作
&&& const TImageInfo* GetImage(LPCTSTR bitmap);
&&& const TImageInfo* GetImageEx(LPCTSTR bitmap, LPCTSTR type = NULL, DWORD mask = 0);
&&& const TImageInfo* AddImage(LPCTSTR bitmap, LPCTSTR type = NULL, DWORD mask = 0);
&&& bool RemoveImage(LPCTSTR bitmap);
&&& void RemoveAllImages();
& 默认属性列表操作
&&& void AddDefaultAttributeList(LPCTSTR pStrControlName, LPCTSTR pStrControlAttrList);
&&& LPCTSTR GetDefaultAttributeList(LPCTSTR pStrControlName)
&&& bool RemoveDefaultAttributeList(LPCTSTR pStrControlName);
&&& const CStdStringPtrMap& GetDefaultAttribultes()
&&& void RemoveAllDefaultAttributeList();
& 将控件树附加到当前绘制管理者
&&& bool AttachDialog(CControlUI* pControl);
& 初始化控件 把控件名称加入到绘制管理者的控件名map中
&&& bool InitControls(CControlUI* pControl, CControlUI* pParent = NULL);
& 重置控件
&&& void ReapObjects(CControlUI* pControl);
& 选项组操作
&&& bool AddOptionGroup(LPCTSTR pStrGroupName, CControlUI* pControl); - 添加选项组
&&& CStdPtrArray* GetOptionGroup(LPCTSTR pStrGroupName); - 通过名称得到选项组
&&& void RemoveOptionGroup(LPCTSTR pStrGroupName, CControlUI* pControl); - 移除选项组
&&& void RemoveAllOptionGroups(); - 移除所有选项组
& 得到控件焦点
&&& CControlUI* GetFocus()
& 控件获得焦点
&&& void SetFocus(CControlUI* pControl);
& 得到标签页控件
&&& bool SetNextTabControl(bool bForward = true);
& 定时器操作
&&& bool SetTimer(CControlUI* pControl, UINT nTimerID, UINT uElapse); - 设置一个定时器
&&& bool KillTimer(CControlUI* pControl, UINT nTimerID); - 清除一个定时器
&&& void RemoveAllTimers(); - 清楚所有定时器
& 捕获鼠标
&&& void SetCapture();
& 释放捕获鼠标
&&& void ReleaseCapture();
& 鼠标是否被捕获
&&& bool IsCaptured();
&&& bool AddNotifier(INotifyUI* pControl); - 加入一个Listener
&&& bool RemoveNotifier(INotifyUI* pControl);&& - 移除一个Listener
&&& void SendNotify(TNotifyUI& Msg); - 发送一个Notify消息
&&& void SendNotify(CControlUI* pControl, LPCTSTR pstrMessage, WPARAM wParam = 0, LPARAM lParam = 0); - 发送一个Notify消息
&&& bool AddPreMessageFilter(IMessageFilterUI* pFilter); - 加入一个预处理Message Filter
&&& bool RemovePreMessageFilter(IMessageFilterUI* pFilter); - 移除一个预处理Message Filter
&&& bool AddMessageFilter(IMessageFilterUI* pFilter); - 加入一个Message Filter
&&& bool RemoveMessageFilter(IMessageFilterUI* pFilter); - 移除一个Message Filter
& PostPaint控件操作
&&& int GetPostPaintCount() - 得到PostPaint控件数量
&&& bool AddPostPaint(CControlUI* pControl); - 加入PostPaint控件
&&& bool RemovePostPaint(CControlUI* pControl); - 移除一个PostPaint控件
&&& bool SetPostPaintIndex(CControlUI* pControl, int iIndex); - 设置控件到指定的序列位置
& 加入控件到延迟处理列表当中
&&& void AddDelayedCleanup(CControlUI* pControl);
& 得到根控件
&&& CControlUI* GetRoot()
& 按照位置找到控件
&&& CControlUI* FindControl(POINT pt)
& 按父窗口和位置查找控件
&&& CControlUI* FindControl(CControlUI* pParent, POINT pt)
& 按名字查找控件
&&& CControlUI* FindControl(LPCTSTR pstrName);
& 按父窗口和名字查找控件
&&& CControlUI* FindControl(CControlUI* pParent, LPCTSTR pstrName);
& 消息循环
&&& static void MessageLoop();
& 消息处理
&&& static bool TranslateMessage(const LPMSG pMsg);
& 消息处理
&&& bool MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT& lRes);
& 消息预处理
&&& bool PreMessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT& lRes);
& 回调函数 - 比较属性(pData)与控件(pThis)的属性是否相同
&&& static CControlUI* CALLBACK __FindControlFromNameHash(CControlUI* pThis, LPVOID pData); - 按名称查找控件的回调函数
&&& static CControlUI* CALLBACK __FindControlFromCount(CControlUI* pThis, LPVOID pData); - 计算控件数目的回调函数
&&& static CControlUI* CALLBACK __FindControlFromPoint(CControlUI* pThis, LPVOID pData); - 按位置查找控件的回调函数
&&& static CControlUI* CALLBACK __FindControlFromTab(CControlUI* pThis, LPVOID pData); - 查找下一个相应tab的控件
&&& static CControlUI* CALLBACK __FindControlFromShortcut(CControlUI* pThis, LPVOID pData); - 快捷方式对应的控件
&&& static CControlUI* CALLBACK __FindControlFromUpdate(CControlUI* pThis, LPVOID pData); - 查找需要刷新的控件
&&& static CControlUI* CALLBACK __FindControlFromNameByParent(CControlUI* pThis, LPVOID pData); - 查找子控件
&&& HWND m_hWndP&&& //绘制窗口句柄
&&& HDC m_hDcP&&&&&&& //绘制DC
&&& HDC m_hDcO //屏幕兼容DC
&&& HDC m_hDcB&&& //背景DC
&&& HBITMAP m_hbmpO&&& //屏幕DIB
&&& HBITMAP m_hbmpB&&& //背景DIB
&&& HWND m_hwndT&&& //提示窗口句柄
&&& TOOLINFO m_ToolT&&& //提示结构
&&& bool m_bShowUpdateR&&& //是否更新
&&& CControlUI* m_pR&&& //根控件指针
&&& CControlUI* m_pF&&& //获得焦点控件指针
&&& CControlUI* m_pEventH&&& //鼠标停留控件指针
&&& CControlUI* m_pEventC&&& //点击事件控件指针
&&& CControlUI* m_pEventK&&& //相应键盘事件控件指针
&&& POINT m_ptLastMouseP&&& //鼠标位置
&&& SIZE m_szMinW&&&&&&& //窗口最小限制
&&& SIZE m_szMaxW&&&&&&& //窗口最大限制
&&& SIZE m_szInitWindowS&&& //初始化窗口大小
&&& RECT m_rcSizeB&&&&&&& //托腮大小
&&& SIZE m_szRoundC&&& //圆角大小
&&& RECT m_rcC&&&&&&& //标题大小
&&& UINT m_uTimerID;&&&&&&& //计时器ID
&&& bool m_bFirstL&&& //是否为第一层
&&& bool m_bUpdateN&&& //是否需要更新
&&& bool m_bFocusN&&& //是否需要焦点
&&& bool m_bOffscreenP&&& //是否绘制m_hDcOffscreen
&&& bool m_bAlphaB&&& //背景是否透明
&&& bool m_bMouseT&&& //是否追踪鼠标
&&& bool m_bMouseC&&& //是否捕获鼠标
&&& CStdPtrArray m_aN&&& //Listener 列表
&&& CStdPtrArray m_aT&&&&&&& //计时器列表
&&& CStdPtrArray m_aPreMessageF&&& //预处理消息列表
&&& CStdPtrArray m_aMessageF&&&&&&& //消息处理列表
&&& CStdPtrArray m_aPostPaintC&&& //PostPaint控件列表
&&& CStdPtrArray m_aDelayedC&&& //延迟释放控件列表
&&& CStdStringPtrMap m_mNameH&&& //控件名哈希列表
&&& CStdStringPtrMap m_mOptionG&&& //选项组列表
&&& CPaintManagerUI* m_pParentResourcePM;&&& //当前绘制管理者的上一层绘制管理者(父绘制管理者)
&&& DWORD m_dwDefalutDisabledC&&& //默认非可用状态字体颜色
&&& DWORD m_dwDefalutFontC&&& //默认字体颜色
&&& DWORD m_dwDefalutLinkFontC&&& //默认链接颜色
&&& DWORD m_dwDefalutLinkHoverFontC&&& //默认鼠标漂浮时字体颜色
&&& DWORD m_dwDefalutSelectedBkC&&& //默认被选择后背景颜色
&&& TFontInfo m_DefaultFontI&&& //默认字体信息
&&& CStdPtrArray m_aCustomF&&& //字体列表
&&& CStdStringPtrMap m_mImageH&&& //图片资源名哈希表
&&& CStdStringPtrMap m_DefaultAttrH&&& //默认属性哈希表
&&& static HINSTANCE m_hI&&& //应用程序对象实例句柄
&&& static HINSTANCE m_hResourceI&&& //资源对象实例句柄
&&& static CStdString m_pStrResourceP&&& //资源路径
&&& static CStdString m_pStrResourceZ&&& //zip包资源名称
&&& static CStdPtrArray m_aPreM&&& //预处理消息队列
======update ========================================
10 class UIMarkup -& 解析XML
&&& CMarkup()
&&&&& 功能 - 构造函数
&&&&& pstrXML - xml数据
&&&&& 实现 -
&&&&&&& 初始化成员变量
&&&&&&& 调用Load()
&&& ~CMarkup()
&&&&& 功能 - 析构函数
&&& Load()
&&&&& 功能 - 加载xml数据
&&&&& pstrXML - xml数据
&&& LoadFromMem()
&&&&& 功能 - 从内存中加载xml数据
&&&&& pByte - 内存数据指针
&&&&& dwSize - 大小
&&&&& encoding - 编码方式 XMLFILE_ENCODING_UTF8(默认) XMLFILE_ENCODING_UNICODE XMLFILE_ENCODING_ASNI
&&&&& 实现 -
&&&&&&& 进行编码转换
&&&&&&& 申请控件
&&&&&&& 复制数据
&&& LoadFromFile()
&&&& 功能 - 从文件中加载xml数据
&&&& pstrFilename - 文件名
&&&& encoding - 编码方式
&&&& 实现 -
&&&&&& 判断资源类型是否为zip包,如果为zip包则进行解压
&&&&&& 调用LoadFromMem()
&&& Release() - 释放xml数据和元素信息数据
&&& IsValid() - Markup是否有效
&&& SetPreserveWhitespace() - 设置是否保存空白行
&&& GetLastErrorMessage()
&&&&& 功能 - 得到错误信息
&&&&& pstrMessage - [out]错误信息内容
&&&&& cchMax - 信息长度
&&& GetLastErrorLocation
&&&&& 功能 - 得到出错位置
&&&&& pstrSource - 错误所在位置内容
&&&&& cchMax - 内容长度
&&& GetRoot() - 得到根节点
&&& tagXMLELEMENT&&& //元素结构
&&&&&&& ULONG iS&&& //在m_pstrXML中起始位置
&&&&&&& ULONG iC&&& //子标签在m_pstrXML中的位置
&&&&&&& ULONG iN&&& //同级下一个标签在m_pstrXML中的位置
&&&&&&& ULONG iP&&& //上一级标签在m_pstrXML中的位置
&&&&&&& ULONG iD&&& //元素数据在m_pstrXML中的位置
&&& } XMLELEMENT;
&&& LPTSTR m_pstrXML;&&& //xml数据
&&& XMLELEMENT* m_pE&&& //元素列表
&&& ULONG m_nE&&& //元素数量
&&& ULONG m_nReservedE&&& //存储元素空间
&&& TCHAR m_szErrorMsg[100];&&& //错误消息
&&& TCHAR m_szErrorXML[50];&&&&&&& //错误内容
&&& bool m_bPreserveW&&& //是否过滤空白
&&& 解析xml数据
&&& bool _Parse();
&&& bool _Parse(LPTSTR& pstrText, ULONG iParent);
&&&&& 实现 -
&&&&&&& for(;;)
&&&&&&&&&&& 如果为顶层则返回
&&&&&&&&&&& 填充element
&&&&&&&&&&& 解析名字
&&&&&&&&&&& 解析属性
&&&&&&&&&&& 标签闭合方式
&&&&&&&&&&& 如果为/&则continue
&&&&&&&&&&& 如果为&则递归调用_Parse()
&&&&&&&&&&& 如果为该标签的对应闭合标签 continue
&&& XMLELEMENT* _ReserveElement(); - 申请保存元素空间
&&& 跳过空白
&&&&& inline void _SkipWhitespace(LPTSTR& pstr)
&&&&& inline void _SkipWhitespace(LPCTSTR& pstr)
&&& 跳过标识符
&&&&& inline void _SkipIdentifier(LPTSTR& pstr)
&&&&& inline void _SkipIdentifier(LPCTSTR& pstr)
&&& bool _ParseData(LPTSTR& pstrText, LPTSTR& pstrData, char cEnd);
&&&& 功能 - 解析数据
&&&& pstrText - 被解析的数据字符串
&&&& pstrData - 解析后的数据字符串
&&&& cEnd - 终止字符
&&& 解析转义字符
&&&&& void _ParseMetaChar(LPTSTR& pstrText, LPTSTR& pstrDest);
&&& 解析属性
&&&&& bool _ParseAttributes(LPTSTR& pstrText);
&&& 记录错误信息返回错误
&&&&& bool _Failed(LPCTSTR pstrError, LPCTSTR pstrLocation = NULL);
11 class CMarkupNode
&&& CMarkupNode
=======update ========
11 class CMarkupNode
&&&&&&& CMarkupNode() - 构造函数 构造一个空节点
&&& CMarkupNode(CMarkup* pOwner, int iPos)
&&&&&&&&& 功能 - 构造函数
&&&&&&&&& pOwner - CMarkup指针
&&&&&&&&& iPos - 在xml数据中的位置
&&&&&&& IsValid() - 节点对象是否有效
&&&&&&& GetParent() - 得到父节点
&&&&&&& GetSibling() - 得到兄弟节点
&&&&&&& GetChild() - 得到子节点
&&&&&&& GetChild(LPCTSTR pstrName)
&&&&&&&&& 功能 - 按名字得到子节点
&&&&&&&&& 实现 - 循环查找所有子节点,直到名字匹配
&&&&&&& HasSiblings() - 是否有兄弟节点
&&&&&&& HasChildren() - 是否有子节点
&&&&&&& GetName() - 得到节点对应的标签名
&&&&&&& GetValue() - 得到节点对应的标签数据值
&&&&&&& HasAttributes() - 是否有属性
&&&&&&& HasAttribute(LPCTSTR pstrName) - 是否有名为pstrName的属性
&&&&&&& GetAttributeCount() - 得到节点属性的数量
&&&&&&& GetAttributeName(int iIndex) - 按序号得到属性名称
&&& bool GetAttributeValue(int iIndex, LPTSTR pstrValue, SIZE_T cchMax)
&&&&&&&&& 功能 - 得到属性
&&&&&&&&& iIndex - 属性序号
&&&&&&&&& pstrValue - [out] 属性值字符串
&&&&&&&&& cchMax - 属性值字符串长度
&&& bool GetAttributeValue(LPCTSTR pstrName, LPTSTR pstrValue, SIZE_T cchMax)
&&&&&&&&& 功能 - 得到属性
&&&&&&&&& pstrName - 属性名
&&&&&&&&& pstrValue - [out] 属性值字符串
&&&&&&&&& cchMax - 属性值字符串长度
&&&&&&& _MapAttributes() - 解析xml属性建立 属性名和值的表映射到xml数据的位置
&&& enum { MAX_XML_ATTRIBUTES = 64 };&&&&&&& //属性最大数量限制
&&& typedef struct
&&&&&&& ULONG iN
&&&&&&& ULONG iV
&&& } XMLATTRIBUTE;&&&&&&& //属性结构
&&& int m_iP&&&&&&& //节点在xml数据中的位置
&&& int m_nA&&&&&&& //属性数量
&&& XMLATTRIBUTE m_aAttributes[MAX_XML_ATTRIBUTES];&&&&&&& //属性-值 映射xml位置 列表
&&& CMarkup* m_pO&&&&&&& - CMarkup指针
12 class IDialogBuilderCallback - 构建UI时回调类 用于创造用户自定义的控件
&& virtual CControlUI* CreateControl(LPCTSTR pstrClass) = 0 - 创建用户自定义控件, pstrClass控件名
13 class CDialogBuilder - 构建UI
&&&& CControlUI* Create();
&&&&&&&&&& 功能 - 构建UI
&&&&&&&& STRINGorID xml - 可以是一个内存xml数据或一个文件名
&&&&&&&& STRINGorID type = (UINT) 0 - 如果xml数据位于EXE资源中则type指定资源类型
&&&&&&&& IDialogBuilderCallback* pCallback = NULL - 回调函数
&&&&&&&& CPaintManagerUI* pManager = NULL - 绘制管理者指针
&&&&&&&&&& 实现 -
&&&&&&&&&&&& 判断xml类型
&&&&&&&&&&&& 加载xml数据
&&&&&&&&&&&& 调用Create(pCallback, pManager)构建
&&& CControlUI* Create(IDialogBuilderCallback* pCallback = NULL, CPaintManagerUI* pManager = NULL);
&&&&&&&&& 功能 - 构建UI
&&&&&&&&& 实现 -
&&&&&&&&&&& 得到顶层Window标签,并解析属性
&&&&&&& 调用_Parse() 解析xml
&&& void GetLastErrorMessage(LPTSTR pstrMessage, SIZE_T cchMax) - 错误信息
&&& void GetLastErrorLocation(LPTSTR pstrSource, SIZE_T cchMax) - 出错位置
&&& CControlUI* _Parse(CMarkupNode* parent, CControlUI* pParent = NULL, CPaintManagerUI* pManager = NULL);
&&&&&&& 实现 -
&&&&&&&&& for(循环顶级标签)
&&&&&&&&& {
&&&&&&&&&&&&& 按xml标签创建控件对象
&&&&&&&&&&&&&&&&& 如果不是标准控件则调用m_pCallback-&CreateControl()创建用户自定义控件对象
&&&&&&&&&&&&&&&&& 如果有子节点则递归调用_Parse()
&&&&&&&&&&&&&&&&& 因为某些属性和父窗口相关,比如selected,必须先Add到父窗口
&&&&&&&&&&&&&&&&& 初始化控件默认属性
&&&&&&&&&&&&&&&&& 根据xml数据解析处理控件属性
&&&&&&&& }
&& CMarkup m_ //CMarkup对象
&& IDialogBuilderCallback* m_pC//构建控件回调
14 class CControlUI 控件
&&& GetName() - 得到控件名称 名称为控件的唯一ID
&&& SetName() - 设置控件名称
&&& GetInterface() - 得到控件指针
&&& GetClass() - 得到控件类名
&&& GetControlFlags() - 得到控件类型标志
&&& Activate() - 控件是否活跃 (非不可用状态,非不可见状态)
&&& GetManager() - 得到绘制管理者
&&& SetMananer()
&&&&&&&&& 功能 - 设置控件的绘制管理者
&&&&&&&&& 实现 -
&&&&&&&&&&& 设置控件管理者
&&&&&&&&&&& 初始化
&&&&&&& GetParent() - 得到父控件
&&&&&&& GetText() - 得到控件显示内容
&&&&&&& SetText() - 设置控件显示内容
&&&&&&& GetBkColor() - 得到背景色
&&&&&&& GetBkColor2() - 得到背景色2
&&&&&&& SetBkColor2() - 设置背景色2
&&&&&&& GetBkColor3() - 得到背景色3
&&&&&&& SetBkColor3() - 设置背景色3
* 背景色1,2,3用于渐变色 颜色渐变过程为1-&2-&3
&&&&&&& GetBkImage() - 得到背景图片
&&&&&&& SetBkImage() - 设置背景图片
&&&&&&& GetBorderColor() - 得到边的颜色
&&&&&&& SetBorderColor() - 设置边的颜色
&&&&&&& GetFocusBorderColor() - 设置获得焦点时边的颜色
&&&&&&& GetBorderSize() - 得到边的宽度
&&&&&&& SetBorderSize() - 设置边的宽度
&&&&&&& GetBorderRound() - 得到圆角
&&&&&&& SetBorderRound() - 设置圆角
&&&&&&& DrawImage() - 绘制图片
&&&&&&& GetPos() - 得到控件位置
&&&&&&& SetPos() - 设置控件位置并重绘
&&&&&&& GetWidth() - 得到控件宽度
&&&&&&& GetHeight() - 得到控件高度
&&&&&&& GetX() - 得到控件横坐标位置(左上点横坐标)
&&&&&&& GetY() - 得到控件纵坐标位置(左上点纵坐标)
&&&&&&& GetPadding() - 设置外边距,由上层窗口绘制(求周围控件离它远点或近点(负值,不过受绘制顺序影响,比较少用)
&&&&&&& SetPadding() - 设置外边距,由上层窗口绘制
&&& GetFixedXY() - 实际大小位置使用GetPos获取,这里得到的是预设的参考值
&&& SetFixedXY() - 仅float为true时有效
&&& GetFixedWidth() - 实际大小位置使用GetPos获取,这里得到的是预设的参考值
&&& SetFixedWidth() - 预设的参考值
&&& GetFixedHeight() - 实际大小位置使用GetPos获取,这里得到的是预设的参考值
&&& SetFixedHeight() - 预设的参考值
&&&&&&& 设置大小的限制值
&&&&& GetMinWidth()
&&&&&&&&& SetMinWidth()
&&&&&&&&& GetMaxWidth()
&&&&&&&&& SetMaxWidth()
&&&&&&&&& GetMinHeight()
&&&&&&&&& SetMinHeight()
&&&&&&&&& GetMaxHeight()
&&&&&&&&& SetMaxHeight()
&&&&&&& SetRelativePos() - 设置相对位置比例
&&&&&&& SetRelativeParentSize() - 设置父控件大小
&&&&&&& GetRelativePos() - 得到相对位置比例
&&&&&&& IsRelativePos() -是使用相对位置
&&&&&&& 获取/设置 提示信息
&&&&&&&&& GetToolTip()
&&&&&&&&& SetToolTip()
&&&&&&& 获取/设置 快捷键
&&&&&&&&& GetShortcut()
&&&&&&&&& SetShortcut()
&&&&&&& 获取/设置 上下文菜单是否被使用
&&&&&&&&& IsContextMenuUsed()
&&&&&&& 获取/设置 用户数据(字符串)
&&&&&&&&& GetUserData()
&&&&&&&&& SetUserData()
&&&&&&& 获取/设置 用户指针
&&&&&&&&& GetTag()
&&&&&&&&& SetTag()
&&&&&&& 获取/设置 控件是否可见
&&&&&&&&& IsVisible()
&&&&&&&&& SetVisible()
&&&&&&&&& SetInternVisible() // 仅供内部调用,有些UI拥有窗口句柄,需要重写此函数
&&&&&&&&&&& 有窗口句柄的UI在设置不可见时,需要先失去焦点
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:4772次
排名:千里之外}

我要回帖

更多关于 duilib 超链接 颜色 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信