属性名称 | 默认值 | 参数类型 | 用途 |
---|---|---|---|
size | 0,0 | SIZE | 窗口的初始化大小,如(800,600) |
mininfo | 0,0 | SIZE | 窗口最小大小,如(320,240) |
maxinfo | 0,0 | SIZE | 窗口最大大小,如(1600,1200) |
heightpercent | 0.0 | DOUBLE | 窗口的初始高度占屏幕高度的百分比,应该写在size、mininfo、maxinfo属性后面 |
sizebox | 0,0,0,0 | RECT | 窗口可拖动改变窗口大小的边距,如(4,4,6,6) |
caption | 0,0,0,0 | RECT | 窗口可拖动的标题栏大小的边距,最后一个参数是指离上边框的距离,如(0,0,0,28) |
textid | STRING | 窗体标题字符串的ID,ID在多语言文件中指定,如(STRID_MIANWINDOW_TITLE) | |
roundcorner | 0,0 | SIZE | 窗口圆角大小,如(4,4) |
shadowattached | true | BOOL | 窗口是否附加阴影效果,如(true) |
shadowimage | STRING | 使用自定义的阴影素材去代替默认的阴影效果,设置的路径要注意相对路径以及九宫格属性,如(file='../public/bk/bk_shadow.png' corner='30,30,30,30') | |
shadowcorner | 0,0,0,0 | RECT | 设置了shadowimage属性后,设置此属性来指定阴影素材的九宫格描述,这个属性一定要写在size属性前面 |
alphafixcorner | 14,14,14,14 | RECT | 透明通道修补范围的的九宫格描述 |
custom_shadow | 14,14,14,14 | RECT | 与alphafixcorner完全一样,为了兼容老版本xml所以没有去掉这个属性 |
方法名称 | 用途 |
---|---|
GetHWND | 获取窗口所属的 Windows 句柄 |
RegisterWindowClass | 注册窗口类 |
RegisterSuperClass | 注册控件窗口类(与窗口的过程函数不同) |
GetWindowClassName | 获取窗口类名称 |
GetSuperClassName | 获取控件窗口类 |
GetClassStyle | 获取窗口类的样式,该方法由实例化的子类实现,https://docs.microsoft.com/en-us/windows/desktop/winmsg/window-class-styles |
Subclass | 子类化窗口(更改窗口过程函数) |
Unsubclass | 取消子类化窗口(恢复原来的窗口过程函数) |
Create | 创建窗口 |
Close | 关闭窗口 |
ShowWindow | 显示或隐藏窗口 |
ShowModalFake | 显示模态对话框(推荐) |
CenterWindow | 居中窗口,支持扩展屏幕 |
SetIcon | 设置窗口图标 |
SendMessage | 发送消息,对 Windows SendMessage 的一层封装 |
PostMessage | 投递一个消息到消息队列 |
AttachWindowClose | 监听窗口关闭事件 |
OnFinalMessage | 在窗口收到 WM_NCDESTROY 消息时会被调用 |
__WndProc | 窗口过程函数 |
__ControlProc | 待补充 |
Init | 窗口接收到 WM_CREATE 消息时会被调用,一般用于初始化 |
AttachDialog | 绑定窗口的顶层容器 |
InitControls | 初始化控件,在容器中添加控件时会被调用(用于对控件名称做缓存) |
ReapObjects | 回收控件 |
GetWindowResourcePath | 获取窗口资源路径 |
SetWindowResourcePath | 设置窗口资源路径 |
GetDefaultFontInfo | 获取默认字体信息 |
AddClass | 添加一个通用样式 |
GetClassMap | 获取所有通用样式 |
GetClassAttributes | 获取指定通用样式的内容 |
RemoveClass | 删除一个通用样式 |
RemoveAllClass | 删除所有通用样式 |
AddOptionGroup | 添加一个选项组 |
GetOptionGroup | 获取指定选项组中控件列表 |
RemoveOptionGroup | 删除一个选项组 |
RemoveAllOptionGroups | 删除所有选项组 |
ClearImageCache | 清理图片缓存 |
GetMousePos | 获取鼠标位置 |
GetSizeBox | 获取窗口四边可拉伸范围的大小 |
SetSizeBox | 设置窗口四边可拉伸范围的大小 |
GetCaptionRect | 获取窗口标题栏区域(可拖动区域),对应 XML 中 caption 属性 |
SetCaptionRect | 设置窗口标题栏区域 |
GetRoundCorner | 获取窗口圆角大小,对应 XML 中 roundcorner 属性 |
SetRoundCorner | 设置窗口圆角大小 |
GetMaximizeInfo | 获取窗口最大化信息 |
SetMaximizeInfo | 设置窗口最大化信息 |
GetAlphaFixCorner | 获取透明通道修补范围的的九宫格描述,对应 XML 中 alphafixcorner 属性 |
SetAlphaFixCorner | 设置透明通道修补范围的的九宫格描述 |
GetHeightPercent | 获取窗口的初始高度占屏幕高度的百分比,对应 XML 中 heightpercent 属性 |
SetHeightPercent | 设置窗口的初始高度占屏幕高度的百分比 |
SetTextId | 根据语言列表中的文本 ID 设置窗口标题栏文本 |
SetShadowAttached | 设置窗口是否附加阴影效果 |
GetShadowImage | 获取阴影图片 |
SetShadowImage | 设置窗口阴影图片 |
GetShadowCorner | 获取阴影的九宫格描述信息 |
SetShadowCorner | 指定阴影素材的九宫格描述 |
GetPos | 获取窗口位置信息 |
SetPos | 设置窗口位置(对 SetWindowPos 的一层封装) |
GetMinInfo | 获取窗口最小范围,对应 XML 中 mininfo 属性 |
GetMaxInfo | 获取窗口最大范围,对应 XML 中 maxinfo 属性 |
GetInitSize | 获取窗口初始大小 |
SetMinInfo | 设置窗口最小范围 |
SetMaxInfo | 设置窗口最大范围 |
SetInitSize | 设置窗口初始大小 |
AddMessageFilter | 添加一个消息过滤器,此时消息已经派发 |
RemoveMessageFilter | 移除一个消息过滤器 |
AddControlFromPointFinder | 查找控件时添加一个根据位置查找控件的钩子 |
RemoveControlFromPointFinder | 移除查找控件时根据位置查找控件的钩子 |
AddTranslateAccelerator | 添加一个 TranslateMessage 之前的消息过滤器 |
RemoveTranslateAccelerator | 移除一个 TranslateMessage 之前的消息过滤器 |
TranslateAccelerator | 执行 TranslateMessage 阶段的过滤器 |
HandleMessage | 窗口消息的派发函数 |
DoHandlMessage | 窗口消息的执行体,用于执行各类过滤器和处理各类消息 |
CallWindowProc | 对 CallWindowProc API 的一层封装 |
HandleMouseEnterLeave | 判断是否需要发送鼠标进入或离开消息 |
GetFocus | 获取当前持有焦点的控件 |
SetFocus | 设置焦点到指定控件上 |
SetFocusNeeded | 设置焦点到指定控件并重绘所有控件 |
KillFocus | 让窗口失去焦点 |
SetCapture | 设置当要捕获的鼠标窗口句柄为当前绘制窗口 |
ReleaseCapture | 当窗口不需要鼠标输入时释放资源 |
IsCaptureControl | 判断指定控件是否被点击或触控 |
IsCaptured | 判断当前是否捕获鼠标输入 |
GetNewHover | 获取当前鼠标在哪个控件上 |
GetLastMousePos | 获取鼠标最后的坐标 |
SetHandlePointer | 设置是否处理触控消息 |
GetTooltipWindow | 获取提示信息所属的窗口句柄 |
SetNextTabControl | 切换控件焦点到下一个(或上一个)控件 |
GetRoot | 获取窗口最外层的容器 |
SetArrange | 设置控件是否已经布局 |
AddDelayedCleanup | 延迟销毁一个控件 |
FindControl | 根据坐标查找指定控件 |
FindControl | 根据控件名称查找控件 |
FindSubControlByPoint | 根据坐标查找子控件 |
FindSubControlByName | 根据名字查找子控件 |
FindSubControlByClass | 根据类名查找子控件 |
FindSubControlsByClass | 根据类名查找子控件 |
GetSubControlsByClass | 返回保存了控件集合的列表 |
SendNotify | 主动发起一个消息 |
SendNotify | 主动发起一个消息 |
GetPaintDC | 获取绘制区域 DC |
GetRenderContext | 获取绘制对象 |
Invalidate | 发出重绘消息 |
Paint | 绘制函数体 |
SetAlpha | 设置透明度 |
IsRenderTransparent | 判断当前是否渲染透明图层 |
SetRenderTransparent | 设置渲染透明图层 |
OnInitLayout | 初始化布局 |
SetRenderOffset | 设置绘制偏移 |
SetRenderOffsetX | 设置绘制偏移 x 坐标 |
SetRenderOffsetY | 设置绘制偏移 y 坐标 |
获取窗口所属的 Windows 句柄
HWND GetHWND()
- 参 数:无
- 返回值:返回窗口关联的 Windows 窗口句柄
注册窗口类
bool RegisterWindowClass()
- 参 数:无
- 返回值:返回 true 表示成功,否则表示失败
注册控件窗口类(与窗口的过程函数不同)
bool RegisterSuperClass()
- 参 数:无
- 返回值:返回 true 表示成功,否则表示失败
获取窗口类名称
virtual std::wstring GetWindowClassName()
- 参 数:无
- 返回值:返回窗口类名称
获取控件窗口类
virtual std::wstring GetSuperClassName()
- 参 数:无
- 返回值:返回控件窗口类
获取窗口类的样式,该方法由实例化的子类实现,https://docs.microsoft.com/en-us/windows/desktop/winmsg/window-class-styles
virtual UINT GetClassStyle()
- 参 数:无
- 返回值:返回窗口类的样式
子类化窗口(更改窗口过程函数)
HWND Subclass(HWND hWnd)
- 参 数:
- `窗口句柄
- 返回值:新的窗口句柄
取消子类化窗口(恢复原来的窗口过程函数)
void Unsubclass()
- 参 数:无
- 返回值:无
创建窗口
virtual HWND Create(HWND hwndParent, LPCTSTR pstrName, DWORD dwStyle, DWORD dwExStyle, bool isLayeredWindow = true, const UiRect& rc = UiRect(0, 0, 0, 0)
- 参 数:
hwndParent
父窗口句柄pstrName
窗口名称dwStyle
窗口样式dwExStyle
窗口拓展样式isLayeredWindow
是否带有层窗口属性,默认为 truerc
窗口大小
- 返回值:返回窗口句柄
关闭窗口
virtual void Close(UINT nRet = IDOK)
- 参 数:
- `关闭消息
- 返回值:无
显示或隐藏窗口
virtual void ShowWindow(bool bShow = true, bool bTakeFocus = true)
- 参 数:
bShow
为 true 时显示窗口,为 false 时为隐藏窗口,默认为 truebTakeFocus
是否获得焦点(激活窗口),默认为 true
- 返回值:无
显示模态对话框(推荐)
void ShowModalFake(HWND parent_hwnd)
- 参 数:
parent_hwnd
父窗口句柄
- 返回值:无
居中窗口,支持扩展屏幕
void CenterWindow()
- 参 数:无
- 返回值:无
设置窗口图标
void SetIcon(UINT nRes)
- 参 数:
nRes
窗口图标资源 ID
- 返回值:无
发送消息,对 Windows SendMessage 的一层封装
LRESULT SendMessage(UINT uMsg, WPARAM wParam = 0, LPARAM lParam = 0L)
- 参 数:
uMsg
消息类型wParam
消息附加参数lParam
消息附加参数
- 返回值:返回窗口对消息的处理结果
投递一个消息到消息队列
LRESULT PostMessage(UINT uMsg, WPARAM wParam = 0, LPARAM lParam = 0L)
- 参 数:
uMsg
消息类型wParam
消息附加参数lParam
消息附加参数
- 返回值:返回窗口对消息的处理结果
监听窗口关闭事件
void AttachWindowClose(const EventCallback& callback)
- 参 数:
callback
指定关闭后的回调函数
- 返回值:无
在窗口收到 WM_NCDESTROY 消息时会被调用
virtual void OnFinalMessage(HWND hWnd)
- 参 数:
hWnd
窗口句柄
- 返回值:无
窗口过程函数
static LRESULT CALLBACK __WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
- 参 数:
hWnd
窗口句柄uMsg
消息体wParam
消息附加参数lParam
消息附加参数
- 返回值:返回消息处理结果
待补充
static LRESULT CALLBACK __ControlProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
- 参 数:
- `待补充
- 返回值:待补充
窗口接收到 WM_CREATE 消息时会被调用,一般用于初始化
void Init(HWND hWnd)
- 参 数:
hWnd
窗口句柄
- 返回值:无
绑定窗口的顶层容器
bool AttachDialog(Box* pRoot)
- 参 数:
pRoot
容器指针
- 返回值:返回 true 绑定成功,否则为失败
初始化控件,在容器中添加控件时会被调用(用于对控件名称做缓存)
bool InitControls(Control* pControl, Box* pParent = NULL)
- 参 数:
pControl
控件指针pParent
控件父容器
- 返回值:true 为成功,否则为失败
回收控件
void ReapObjects(Control* pControl)
- 参 数:
pControl
控件指针
- 返回值:无
获取窗口资源路径
std::wstring GetWindowResourcePath()
- 参 数:无
- 返回值:返回窗口资源路径
设置窗口资源路径
void SetWindowResourcePath(const std::wstring& strPath)
- 参 数:
strPath
要设置的路径
- 返回值:无
获取默认字体信息
TFontInfo* GetDefaultFontInfo()
- 参 数:无
- 返回值:返回默认字体信息结构
添加一个通用样式
void AddClass(const std::wstring& strClassName, const std::wstring& strControlAttrList)
- 参 数:
strClassName
通用样式的名称strControlAttrList
通用样式的 XML 转义格式数据
- 返回值:无
获取所有通用样式
const std::map<std::wstring, std::wstring>* GetClassMap()
- 参 数:无
- 返回值:返回所有通用样式的 map 数据
获取指定通用样式的内容
std::wstring GetClassAttributes(const std::wstring& strClassName)
- 参 数:
strClassName
通用样式名称
- 返回值:返回指定名称的通用样式内容,XML 转义格式数据
删除一个通用样式
bool RemoveClass(const std::wstring& strClassName)
- 参 数:
strClassName
要删除的通用样式名称
- 返回值:返回 true 为成功,false 为失败或样式不存在
删除所有通用样式
void RemoveAllClass()
- 参 数:无
- 返回值:无
添加一个选项组
bool AddOptionGroup(const std::wstring& strGroupName, Control* pControl)
- 参 数:
strGroupName
组名称pControl
控件指针
- 返回值:返回 true 表示添加成功,false 可能组已经存在
获取指定选项组中控件列表
std::vector<Control*>* GetOptionGroup(const std::wstring& strGroupName)
- 参 数:
strGroupName
指定组名称
- 返回值:返回该组下的所有控件列表
删除一个选项组
void RemoveOptionGroup(const std::wstring& strGroupName, Control* pControl)
- 参 数:
strGroupName
组名称pControl
控件名称
- 返回值:无
删除所有选项组
void RemoveAllOptionGroups()
- 参 数:无
- 返回值:无
清理图片缓存
void ClearImageCache()
- 参 数:无
- 返回值:无
获取鼠标位置
POINT GetMousePos()
- 参 数:无
- 返回值:鼠标位置的 x 和 y 坐标
获取窗口四边可拉伸范围的大小
UiRect GetSizeBox()
- 参 数:无
- 返回值:返回窗口四边可拉伸范围的大小
设置窗口四边可拉伸范围的大小
void SetSizeBox(const UiRect& rcSizeBox)
- 参 数:
rcSizeBox
要设置的大小
- 返回值:无
获取窗口标题栏区域(可拖动区域),对应 XML 中 caption 属性
UiRect GetCaptionRect()
- 参 数:无
- 返回值:返回标题栏区域
设置窗口标题栏区域
void SetCaptionRect(UiRect& rcCaption)
- 参 数:
rcCaption
要设置的区域范围
- 返回值:无
获取窗口圆角大小,对应 XML 中 roundcorner 属性
CSize GetRoundCorner()
- 参 数:无
- 返回值:返回圆角大小
设置窗口圆角大小
void SetRoundCorner(int cx, int cy)
- 参 数:
cx
圆角宽cy
圆角高
- 返回值:无
获取窗口最大化信息
UiRect GetMaximizeInfo()
- 参 数:无
- 返回值:返回窗口最大化信息
设置窗口最大化信息
void SetMaximizeInfo(UiRect& rcMaximize)
- 参 数:
rcMaximize
要设置的最大化数值
- 返回值:无
获取透明通道修补范围的的九宫格描述,对应 XML 中 alphafixcorner 属性
UiRect GetAlphaFixCorner()
- 参 数:无
- 返回值:返回修补范围
设置透明通道修补范围的的九宫格描述
void SetAlphaFixCorner(UiRect& rc)
- 参 数:
rc
要设置的修补范围
- 返回值:无
获取窗口的初始高度占屏幕高度的百分比,对应 XML 中 heightpercent 属性
double GetHeightPercent()
- 参 数:无
- 返回值:返回指定百分比数据
设置窗口的初始高度占屏幕高度的百分比
void SetHeightPercent(double heightPercent)
- 参 数:
heightPercent
百分比
- 返回值:无
根据语言列表中的文本 ID 设置窗口标题栏文本
void SetTextId(const std::wstring& strTextId)
- 参 数:
strTextId
语言 ID,该 ID 必须在语言文件中存在
- 返回值:无
设置窗口是否附加阴影效果
void SetShadowAttached(bool bShadowAttached)
- 参 数:
bShadowAttached
为 true 时附加,false 时不附加
- 返回值:无
获取阴影图片
std::wstring GetShadowImage()
- 参 数:无
- 返回值:返回阴影图片位置
设置窗口阴影图片
void SetShadowImage(const std::wstring &strImage)
- 参 数:
strImage
图片位置
- 返回值:无
获取阴影的九宫格描述信息
UiRect GetShadowCorner()
- 参 数:无
- 返回值:返回阴影的九宫格描述信息
指定阴影素材的九宫格描述
void SetShadowCorner(const UiRect rect)
- 参 数:
rect
九宫格描述信息
- 返回值:无
获取窗口位置信息
UiRect GetPos(bool bContainShadow = false)
- 参 数:
bContainShadow
是否包含阴影,true 为包含,默认为 false 不包含
- 返回值:返回窗口位置信息
设置窗口位置(对 SetWindowPos 的一层封装)
void SetPos(const UiRect& rc, bool bNeedDpiScale, UINT uFlags, HWND hWndInsertAfter = NULL, bool bContainShadow = false)
- 参 数:
rc
窗口位置bNeedDpiScale
为 false 表示不需要把 rc 根据 DPI 自动调整uFlags
对应 SetWindowPos 的 选项hWndInsertAfter
对应 SetWindowPos 的 选项bContainShadow
是否包含阴影范围,默认为 false
- 返回值:无
获取窗口最小范围,对应 XML 中 mininfo 属性
CSize GetMinInfo(bool bContainShadow = false)
- 参 数:
bContainShadow
是否包含阴影范围,默认为 false
- 返回值:返回指定大小
获取窗口最大范围,对应 XML 中 maxinfo 属性
CSize GetMaxInfo(bool bContainShadow = false)
- 参 数:
bContainShadow
是否包含阴影范围,默认为 false
- 返回值:返回指定大小
获取窗口初始大小
CSize GetInitSize(bool bContainShadow = false)
- 参 数:
bContainShadow
是否包含阴影范围,默认为 false
- 返回值:返回指定大小
设置窗口最小范围
void SetMinInfo(int cx, int cy, bool bContainShadow = false)
- 参 数:
cx
宽度cy
高度bContainShadow
为 false 表示 cx cy 不包含阴影
- 返回值:无
设置窗口最大范围
void SetMaxInfo(int cx, int cy, bool bContainShadow = false)
- 参 数:
cx
宽度cy
高度bContainShadow
为 false 表示 cx cy 不包含阴影
- 返回值:无
设置窗口初始大小
void SetInitSize(int cx, int cy, bool bContainShadow = false, bool bNeedDpiScale = true)
- 参 数:
cx
宽度cy
高度bContainShadow
为 false 表示 cx cy 不包含阴影bNeedDpiScale
为 false 表示不根据 DPI 调整
- 返回值:无
添加一个消息过滤器,此时消息已经派发
bool AddMessageFilter(IUIMessageFilter* pFilter)
- 参 数:
pFilter
一个继承了 IUIMessageFilter 的对象实例,需要实现 MessageHandler 方法
- 返回值:始终返回 true
移除一个消息过滤器
bool RemoveMessageFilter(IUIMessageFilter* pFilter)
- 参 数:
pFilter
一个继承了 IUIMessageFilter 的对象实例
- 返回值:返回 true 表示移除成功,否则可能该过滤器不存在
查找控件时添加一个根据位置查找控件的钩子
bool AddControlFromPointFinder(IControlFromPointFinder* pFinder)
- 参 数:
pFinder
继承了 IControlFromPointFinder 对象指针,需实现 FindControlFromPoint 方法
- 返回值:始终返回 true
移除查找控件时根据位置查找控件的钩子
bool RemoveControlFromPointFinder(IControlFromPointFinder* pFinder)
- 参 数:
pFinder
继承了 IControlFromPointFinder 对象指针
- 返回值:成功返回 true,否则该钩子可能不存在
添加一个 TranslateMessage 之前的消息过滤器
bool AddTranslateAccelerator(ITranslateAccelerator *pTranslateAccelerator)
- 参 数:
pTranslateAccelerator
继承了 ITranslateAccelerator 对象指针,需实现 TranslateAccelerator 方法
- 返回值:始终返回 true
移除一个 TranslateMessage 之前的消息过滤器
bool RemoveTranslateAccelerator(ITranslateAccelerator *pTranslateAccelerator)
- 参 数:
pTranslateAccelerator
继承了 ITranslateAccelerator 对象指针
- 返回值:成功返回 true,否则返回 false 可能该过滤器不存在
执行 TranslateMessage 阶段的过滤器
bool TranslateAccelerator(LPMSG pMsg)
- 参 数:
pMsg
消息体
- 返回值:返回 true 成功处理消息,否则返回 false
窗口消息的派发函数
virtual LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
- 参 数:
uMsg
消息体wParam
消息附加参数lParam
消息附加参数
- 返回值:返回 true 则继续派发该消息,否则不再派发该消息
窗口消息的执行体,用于执行各类过滤器和处理各类消息
LRESULT DoHandlMessage(UINT uMsg, WPARAM wParam, LPARAM lParam, bool& handled)
- 参 数:
uMsg
消息体wParam
消息附加参数lParam
消息附加参数handled
消息是否已经处理,返回 true 表明已经成功处理消息,否则将消息继续传递给窗口过程
- 返回值:返回消息处理结果
对 CallWindowProc API 的一层封装
LRESULT CallWindowProc(UINT uMsg, WPARAM wParam, LPARAM lParam)
- 参 数:
uMsg
消息体wParam
消息附加参数lParam
消息附加参数
- 返回值:返回消息处理结果
判断是否需要发送鼠标进入或离开消息
inline bool HandleMouseEnterLeave(const POINT &pt, WPARAM wParam, LPARAM lParam)
- 参 数:
pt
鼠标当前位置wParam
消息附加参数lParam
消息附加参数
- 返回值:返回 true 需要发送鼠标进入或离开消息,返回 false 为不需要
获取当前持有焦点的控件
Control* GetFocus()
- 参 数:无
- 返回值:返回控件的指针
设置焦点到指定控件上
void SetFocus(Control* pControl)
- 参 数:
pControl
控件指针
- 返回值:无
设置焦点到指定控件并重绘所有控件
void SetFocusNeeded(Control* pControl)
- 参 数:
pControl
控件指针
- 返回值:无
让窗口失去焦点
void KillFocus()
- 参 数:无
- 返回值:无
设置当要捕获的鼠标窗口句柄为当前绘制窗口
void SetCapture()
- 参 数:无
- 返回值:无
当窗口不需要鼠标输入时释放资源
void ReleaseCapture()
- 参 数:无
- 返回值:无
判断指定控件是否被点击或触控
bool IsCaptureControl(const Control* pControl)
- 参 数:
pControl
控件指针
- 返回值:返回 true 表示当前控件处于被点击或触控状态
判断当前是否捕获鼠标输入
bool IsCaptured()
- 参 数:无
- 返回值:返回 true 为捕获,否则为不捕获
获取当前鼠标在哪个控件上
Control* GetNewHover()
- 参 数:无
- 返回值:返回控件的指针
获取鼠标最后的坐标
POINT GetLastMousePos()
- 参 数:无
- 返回值:返回坐标信息
设置是否处理触控消息
void SetHandlePointer(bool bHandle)
- 参 数:
bHandle
设置为 true 表示处理,false 为不处理
- 返回值:无
获取提示信息所属的窗口句柄
HWND GetTooltipWindow()
- 参 数:无
- 返回值:返回提示信息的窗口句柄
切换控件焦点到下一个(或上一个)控件
bool SetNextTabControl(bool bForward = true)
- 参 数:
bForward
true 为上一个控件,否则为 false,默认为 true
- 返回值:始终返回 true,暂无参考意义
获取窗口最外层的容器
Control* GetRoot()
- 参 数:无
- 返回值:返回最外层的容器句柄
设置控件是否已经布局
void SetArrange(bool bArrange)
- 参 数:
bArrange
true 为已经排列,否则为 false
- 返回值:无
延迟销毁一个控件
void AddDelayedCleanup(Control* pControl)
- 参 数:
pControl
控件指针
- 返回值:无
根据坐标查找指定控件
Control* FindControl(POINT pt)
- 参 数:
pt
指定坐标
- 返回值:返回控件指针
根据控件名称查找控件
Control* FindControl(const std::wstring& strName)
- 参 数:
strName
控件名称
- 返回值:返回控件指针
根据坐标查找子控件
Control* FindSubControlByPoint(Control* pParent, POINT pt)
- 参 数:
pParent
要搜索的控件pt
要查找的坐标
- 返回值:返回控件指针
根据名字查找子控件
Control* FindSubControlByName(Control* pParent, const std::wstring& strName)
- 参 数:
pParent
要搜索的控件strName
要查找的名称
- 返回值:返回控件指针
根据类名查找子控件
Control* FindSubControlByClass(Control* pParent, const type_info& typeinfo, int iIndex = 0)
- 参 数:
pParent
要搜索的控件typeinfo
类型的信息iIndex
查找到可能有多个,要获取第几个的索引
- 返回值:控件指针
根据类名查找子控件
std::vector<Control*>* FindSubControlsByClass(Control* pParent, const type_info& typeinfo)
- 参 数:
pParent
要搜索的控件typeinfo
类型的信息
- 返回值:返回所有符合条件的控件列表
返回保存了控件集合的列表
std::vector<Control*>* GetSubControlsByClass()
- 参 数:无
- 返回值:返回列表对象
主动发起一个消息
bool SendNotify(EventType eventType, WPARAM wParam = 0, LPARAM lParam = 0)
- 参 数:
eventType
转化后的消息体wParam
消息附加参数lParam
消息附加参数
- 返回值:始终返回 true
主动发起一个消息
bool SendNotify(Control* pControl, EventType msg, WPARAM wParam = 0, LPARAM lParam = 0)
- 参 数:
pControl
发送目标,要发送给哪个控件msg
消息体wParam
消息附加参数lParam
消息附加参数
- 返回值:始终返回 true
获取绘制区域 DC
HDC GetPaintDC()
- 参 数:无
- 返回值:返回绘制区域 DC
获取绘制对象
IRenderContext* GetRenderContext()
- 参 数:无
- 返回值:返回绘制对象
发出重绘消息
void Invalidate(const UiRect& rcItem)
- 参 数:
rcItem
重绘范围
- 返回值:无
绘制函数体
void Paint()
- 参 数:无
- 返回值:无
设置透明度
void SetAlpha(int nAlpha)
- 参 数:
nAlpha
透明度数值
- 返回值:无
判断当前是否渲染透明图层
bool IsRenderTransparent()
- 参 数:无
- 返回值:返回 true 为是,否则为 false
设置渲染透明图层
bool SetRenderTransparent(bool bCanvasTransparent)
- 参 数:
bCanvasTransparent
设置 true 为渲染透明图层,否则为 false
- 返回值:返回上一次绘制状态
初始化布局
virtual void OnInitLayout()
- 参 数:无
- 返回值:无
设置绘制偏移
void SetRenderOffset(CPoint renderOffset)
- 参 数:
renderOffset
偏移值
- 返回值:无
设置绘制偏移 x 坐标
void SetRenderOffsetX(int renderOffsetX)
- 参 数:
renderOffsetX
坐标值
- 返回值:无
设置绘制偏移 y 坐标
void SetRenderOffsetY(int renderOffsetY)
- 参 数:
renderOffsetY
坐标值
- 返回值:无