2026-03-26 16:45:24 +08:00
|
|
|
# WindowsInputModule
|
|
|
|
|
|
|
|
|
|
**命名空间**: `XCEngine::Input::Platform`
|
|
|
|
|
|
|
|
|
|
**类型**: `class`
|
|
|
|
|
|
|
|
|
|
**头文件**: `XCEngine/Platform/Windows/WindowsInputModule.h`
|
|
|
|
|
|
2026-04-08 16:07:03 +08:00
|
|
|
**描述**: `InputModule` 的 Win32 实现,把窗口消息翻译成 `InputManager` 的键盘、鼠标和文本输入事件。
|
2026-03-26 16:45:24 +08:00
|
|
|
|
|
|
|
|
## 概述
|
|
|
|
|
|
2026-04-08 16:07:03 +08:00
|
|
|
`WindowsInputModule` 本身不拥有消息循环;它依赖窗口层把 Win32 消息喂给 [HandleMessage](HandleMessage.md)。按 `engine/src/Platform/Windows/WindowsInputModule.cpp` 的当前实现:
|
|
|
|
|
|
|
|
|
|
- [Initialize](Initialize.md) 只保存 `HWND`、重置鼠标位置并标记已初始化
|
|
|
|
|
- [PumpEvents](PumpEvents.md) 当前是空实现
|
|
|
|
|
- [HandleMessage](HandleMessage.md) 负责把 `WM_KEYDOWN`、`WM_MOUSEMOVE`、`WM_MOUSEWHEEL`、`WM_CHAR` 等消息转换成 `InputManager::Get()` 的调用
|
|
|
|
|
|
|
|
|
|
它是一个纯桥接层,真正的输入状态存储和按帧语义都在 `InputManager` 里。
|
2026-03-26 16:45:24 +08:00
|
|
|
|
|
|
|
|
## 声明概览
|
|
|
|
|
|
|
|
|
|
| 声明 | 类型 | 说明 |
|
|
|
|
|
|------|------|------|
|
2026-04-08 16:07:03 +08:00
|
|
|
| `WindowsInputModule` | `class` | `InputModule` 的 Win32 消息适配器。 |
|
2026-03-26 16:45:24 +08:00
|
|
|
|
|
|
|
|
## 公共方法
|
|
|
|
|
|
|
|
|
|
| 方法 | 描述 |
|
|
|
|
|
|------|------|
|
2026-04-08 16:07:03 +08:00
|
|
|
| [WindowsInputModule()](Constructor.md) | 初始化空句柄和未初始化状态。 |
|
|
|
|
|
| [~WindowsInputModule()](Destructor.md) | 析构时调用 [Shutdown](Shutdown.md)。 |
|
|
|
|
|
| [Initialize](Initialize.md) | 绑定窗口句柄并进入可处理消息状态。 |
|
|
|
|
|
| [Shutdown](Shutdown.md) | 清空窗口句柄并退出已初始化状态。 |
|
|
|
|
|
| [PumpEvents](PumpEvents.md) | 当前为空实现,消息处理实际发生在 [HandleMessage](HandleMessage.md)。 |
|
|
|
|
|
| [HandleMessage](HandleMessage.md) | 把 Win32 键盘 / 鼠标 / 字符消息翻译成 `InputManager` 调用。 |
|
2026-03-26 16:45:24 +08:00
|
|
|
|
|
|
|
|
## 相关文档
|
|
|
|
|
|
2026-04-08 16:07:03 +08:00
|
|
|
- [Windows](../Windows.md)
|
|
|
|
|
- [WindowsWindow](../WindowsWindow/WindowsWindow.md)
|
|
|
|
|
- [InputManager](../../../Input/InputManager/InputManager.md)
|