Files
2022-01-04 09:40:38 +08:00

566 lines
15 KiB
Markdown

# WindowImplBase
| 方法名称 | 用途 |
| :--- | :--- |
| [InitWindow](#InitWindow) | 当接收到窗口创建消息时被调用 |
| [OnFinalMessage](#OnFinalMessage) | 当接收到窗口销毁消息时被调用 |
| [GetStyle](#GetStyle) | 获取窗口样式 |
| [GetClassStyle](#GetClassStyle) | 获取窗口类样式 |
| [GetResourceType](#GetResourceType) | 待补充 |
| [GetResourceID](#GetResourceID) | 待补充 |
| [CreateControl](#CreateControl) | 当要创建的控件不是标准的控件名称时会调用该函数 |
| [MessageHandler](#MessageHandler) | 接收所有消息 |
| [OnClose](#OnClose) | 当收到窗口关闭消息时被调用 |
| [OnDestroy](#OnDestroy) | 当收到窗口被销毁消息时被调用 |
| [OnNcActivate](#OnNcActivate) | 当收到活动或非活动状态消息时被调用 |
| [OnNcCalcSize](#OnNcCalcSize) | 当收到要计算客户区域大小消息时(WM_NCCALCSIZE)被调用 |
| [OnWindowPosChanging](#OnWindowPosChanging) | 窗口位置或 Z 次序发生改变时被调用 |
| [OnNcPaint](#OnNcPaint) | 当接收到绘制标题栏区域消息时被调用 |
| [OnNcLButtonDbClick](#OnNcLButtonDbClick) | 当接收到标题栏区域双击消息时被调用 |
| [OnNcHitTest](#OnNcHitTest) | 当接收到 WM_NCHITTEST 消息时被调用 |
| [OnGetMinMaxInfo](#OnGetMinMaxInfo) | 当接收到 WM_GETMINMAXINFO 消息时被调用 |
| [OnMouseWheel](#OnMouseWheel) | 当接收到鼠标悬浮消息时被调用 |
| [OnMouseHover](#OnMouseHover) | 当接收到窗口大小改变消息时被调用 |
| [OnSize](#OnSize) | 当接收到窗口大小改变消息时被调用 |
| [OnChar](#OnChar) | 当接收到字符按键消息时(WM_CHAR)被调用 |
| [OnSysCommand](#OnSysCommand) | 接收窗口控制命令消息时(WM_SYSCOMMAND)被调用 |
| [OnKeyDown](#OnKeyDown) | 接收键盘按键按下消息时被调用 |
| [OnKillFocus](#OnKillFocus) | 接收失去焦点消息时被调用 |
| [OnSetFocus](#OnSetFocus) | 接收获取焦点消息时被调用 |
| [OnLButtonDown](#OnLButtonDown) | 接收到鼠标左键按下消息时被调用 |
| [OnLButtonUp](#OnLButtonUp) | 接收到鼠标左键弹起消息时被调用 |
| [OnMouseMove](#OnMouseMove) | 接收到鼠标移动消息时被调用 |
| [OnDpiChanged](#OnDpiChanged) | 当接收到DPI改变消息时被调用(只有在 Startup 中指定启用 DPI 适配后才会触发) |
| [HandleMessage](#HandleMessage) | 窗口消息的派发函数 |
| [ActiveWindow](#ActiveWindow) | 激活窗口 |
| [SetTaskbarTitle](#SetTaskbarTitle) | 设置窗口标题 |
| [ToTopMost](#ToTopMost) | 置顶窗口 |
| [GetSkinFolder](#GetSkinFolder) | 创建窗口时被调用,由子类实现用以获取窗口皮肤目录 |
| [GetSkinFile](#GetSkinFile) | 创建窗口时被调用,由子类实现用以获取窗口皮肤 XML 描述文件 |
| [GetWindowClassName](#GetWindowClassName) | 创建窗口时被调用,由子类实现用以获取窗口唯一的类名称 |
| [OnCreate](#OnCreate) | 收到窗口创建消息时被调用,请使用 InitWindow 接口来实现自定义需求 |
| [OnButtonClick](#OnButtonClick) | 窗口功能按钮被点击时调用 |
### InitWindow
当接收到窗口创建消息时被调用
```cpp
virtual void InitWindow()
```
- 参 数:无
- 返回值:无
### OnFinalMessage
当接收到窗口销毁消息时被调用
```cpp
virtual void OnFinalMessage( HWND hWnd )
```
- 参 数:
- `hWnd` 要销毁的窗口句柄
- 返回值:无
### GetStyle
获取窗口样式
```cpp
virtual LONG GetStyle()
```
- 参 数:无
- 返回值:返回窗口样式
### GetClassStyle
获取窗口类样式
```cpp
virtual UINT GetClassStyle()
```
- 参 数:无
- 返回值:返回窗口类样式
### GetResourceType
待补充
```cpp
virtual UILIB_RESOURCETYPE GetResourceType()
```
- 参 数:
- `待补充
- 返回值:待补充
### GetResourceID
待补充
```cpp
virtual std::wstring GetResourceID()
```
- 参 数:
- `待补充
- 返回值:待补充
### CreateControl
当要创建的控件不是标准的控件名称时会调用该函数
```cpp
virtual Control* CreateControl(const std::wstring& pstrClass)
```
- 参 数:
- `pstrClass` 控件名称
- 返回值:返回一个自定义控件指针,一般情况下根据 pstrClass 参数创建自定义的控件
### MessageHandler
接收所有消息
```cpp
virtual LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 false 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### OnClose
当收到窗口关闭消息时被调用
```cpp
virtual LRESULT OnClose(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 false 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### OnDestroy
当收到窗口被销毁消息时被调用
```cpp
virtual LRESULT OnDestroy(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 true 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### OnNcActivate
当收到活动或非活动状态消息时被调用
```cpp
virtual LRESULT OnNcActivate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 true 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### OnNcCalcSize
当收到要计算客户区域大小消息时(WM_NCCALCSIZE)被调用
```cpp
virtual LRESULT OnNcCalcSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 true 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### OnWindowPosChanging
窗口位置或 Z 次序发生改变时被调用
```cpp
virtual LRESULT OnWindowPosChanging(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 true 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### OnNcPaint
当接收到绘制标题栏区域消息时被调用
```cpp
virtual LRESULT OnNcPaint(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 true 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### OnNcLButtonDbClick
当接收到标题栏区域双击消息时被调用
```cpp
virtual LRESULT OnNcLButtonDbClick(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 true 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### OnNcHitTest
当接收到 WM_NCHITTEST 消息时被调用
```cpp
virtual LRESULT OnNcHitTest(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 true 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### OnGetMinMaxInfo
当接收到 WM_GETMINMAXINFO 消息时被调用
```cpp
virtual LRESULT OnGetMinMaxInfo(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 true 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### OnMouseWheel
当接收到鼠标悬浮消息时被调用
```cpp
virtual LRESULT OnMouseWheel(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 true 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### OnMouseHover
当接收到窗口大小改变消息时被调用
```cpp
virtual LRESULT OnMouseHover(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 true 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### OnSize
当接收到窗口大小改变消息时被调用
```cpp
virtual LRESULT OnSize(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 true 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### OnChar
当接收到字符按键消息时(WM_CHAR)被调用
```cpp
virtual LRESULT OnChar(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 true 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### OnSysCommand
接收窗口控制命令消息时(WM_SYSCOMMAND)被调用
```cpp
virtual LRESULT OnSysCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 true 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### OnKeyDown
接收键盘按键按下消息时被调用
```cpp
virtual LRESULT OnKeyDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 true 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### OnKillFocus
接收失去焦点消息时被调用
```cpp
virtual LRESULT OnKillFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 true 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### OnSetFocus
接收获取焦点消息时被调用
```cpp
virtual LRESULT OnSetFocus(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 true 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### OnLButtonDown
接收到鼠标左键按下消息时被调用
```cpp
virtual LRESULT OnLButtonDown(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 true 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### OnLButtonUp
接收到鼠标左键弹起消息时被调用
```cpp
virtual LRESULT OnLButtonUp(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 true 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### OnMouseMove
接收到鼠标移动消息时被调用
```cpp
virtual LRESULT OnMouseMove(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 true 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### OnDpiChanged
当接收到DPI改变消息时被调用(只有在 Startup 中指定启用 DPI 适配后才会触发)
```cpp
virtual LRESULT OnDpiChanged(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 true 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### HandleMessage
窗口消息的派发函数
```cpp
virtual LRESULT HandleMessage(UINT uMsg, WPARAM wParam, LPARAM lParam)
```
- 参 数:
- `uMsg` 消息内容
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 返回 true 则继续派发该消息,否则不再派发该消息
- 返回值:返回消息处理结果
### ActiveWindow
激活窗口
```cpp
virtual void ActiveWindow()
```
- 参 数:无
- 返回值:void 无返回值
### SetTaskbarTitle
设置窗口标题
```cpp
virtual void SetTaskbarTitle(const std::wstring &title)
```
- 参 数:
- `title` 窗口标题
- 返回值:void 无返回值
### ToTopMost
置顶窗口
```cpp
void ToTopMost(bool forever)
```
- 参 数:
- `forever` 是否一直置顶
- 返回值:void 无返回值
### GetSkinFolder
创建窗口时被调用,由子类实现用以获取窗口皮肤目录
```cpp
virtual std::wstring GetSkinFolder()
```
- 参 数:无
- 返回值:子类需实现并返回窗口皮肤目录
### GetSkinFile
创建窗口时被调用,由子类实现用以获取窗口皮肤 XML 描述文件
```cpp
virtual std::wstring GetSkinFile()
```
- 参 数:无
- 返回值:子类需实现并返回窗口皮肤 XML 描述文件
### GetWindowClassName
创建窗口时被调用,由子类实现用以获取窗口唯一的类名称
```cpp
virtual std::wstring GetWindowClassName(void)
```
- 参 数:无
- 返回值:子类需实现并返回窗口唯一的类名称
### OnCreate
收到窗口创建消息时被调用,请使用 InitWindow 接口来实现自定义需求
```cpp
LRESULT OnCreate(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled)
```
- 参 数:
- `uMsg` 消息ID
- `wParam` 消息附加参数
- `lParam` 消息附加参数
- `bHandled` 消息是否已经被处理
- 返回值:返回消息处理结果
### OnButtonClick
窗口功能按钮被点击时调用
```cpp
bool OnButtonClick(EventArgs* param)
```
- 参 数:
- `param` 携带的参数
- 返回值:始终返回 true