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