重要
本文档介绍不再是 生态系统路线图的一部分的控制台平台功能。 我们不建议在新产品中使用此内容,但我们将继续支持未来无限期的现有使用情况。 我们首选的新式解决方案侧重于 虚拟终端序列 ,以实现跨平台方案中的最大兼容性。 可以在 经典控制台与虚拟终端 文档中找到有关此设计决策的详细信息。
描述控制台 INPUT_RECORD 结构中的鼠标输入事件。
语法
typedef struct _MOUSE_EVENT_RECORD {
COORD dwMousePosition;
DWORD dwButtonState;
DWORD dwControlKeyState;
DWORD dwEventFlags;
} MOUSE_EVENT_RECORD;
成员
dwMousePosition
包含光标位置的 COORD 结构,以控制台屏幕缓冲区的字符单元格坐标为单位。
dwButtonState
鼠标按钮的状态。 最小有效位对应于最左侧的鼠标按钮。 下一个最小有效位对应于最右侧的鼠标按钮。 下一位表示最左侧的鼠标按钮。 然后,位与鼠标按钮向左相对应。 如果按下了按钮,则为 1。
为前五个鼠标按钮定义了以下常量。
| 价值 | 含义 |
|---|---|
| FROM_LEFT_1ST_BUTTON_PRESSED 0x0001 | 最左侧的鼠标按钮。 |
| FROM_LEFT_2ND_BUTTON_PRESSED 0x0004 | 左侧的第二个按钮。 |
| FROM_LEFT_3RD_BUTTON_PRESSED 0x0008 | 左侧的第三个按钮。 |
| FROM_LEFT_4TH_BUTTON_PRESSED 0x0010 | 左侧的第四个按钮。 |
| RIGHTMOST_BUTTON_PRESSED 0x0002 | 最右侧的鼠标按钮。 |
dwControlKeyState
控制键的状态。 此成员可以是以下一个或多个值。
| 价值 | 含义 |
|---|---|
| CAPSLOCK_ON 0x0080 | CAPS LOCK 灯已打开。 |
| ENHANCED_KEY 0x0100 | 密钥已增强。 请参阅 备注。 |
| LEFT_ALT_PRESSED 0x0002 | 按下左 Alt 键。 |
| LEFT_CTRL_PRESSED 0x0008 | 按下左 Ctrl 键。 |
| NUMLOCK_ON 0x0020 | NUM LOCK 灯已打开。 |
| RIGHT_ALT_PRESSED 0x0001 | 按下右 Alt 键。 |
| RIGHT_CTRL_PRESSED 0x0004 | 按下右 Ctrl 键。 |
| SCROLLLOCK_ON 0x0040 | SCROLL LOCK 灯已打开。 |
| SHIFT_PRESSED 0x0010 | 按下 SHIFT 键。 |
dwEventFlags
鼠标事件的类型。 如果此值为零,则表示按下或释放鼠标按钮。 否则,此成员是以下值之一。
| 价值 | 含义 |
|---|---|
| DOUBLE_CLICK 0x0002 | 发生双击的第二次单击(按钮按下)。 第一次单击将作为常规按钮按下事件返回。 |
| MOUSE_HWHEELED 0x0008 | 水平鼠标滚轮已移动。 如果 dwButtonState 成员的高字包含正值,则方向盘向右旋转。 否则,方向盘向左旋转。 |
| MOUSE_MOVED 0x0001 | 发生鼠标位置更改。 |
| MOUSE_WHEELED 0x0004 | 垂直鼠标滚轮已移动。 如果 dwButtonState 成员的高字包含正值,则方向盘向前旋转,远离用户。 否则,方向盘向后旋转,向用户旋转。 |
注解
当主机处于鼠标模式(ENABLE_MOUSE_INPUT)时,鼠标事件将放置在输入缓冲区中。
每当用户移动鼠标或按下或释放其中一个鼠标按钮时,就会生成鼠标事件。 仅当主机组具有键盘焦点且光标位于主机窗口边框内时,鼠标事件才会放置在主机的输入缓冲区中。
例子
有关示例,请参阅 读取输入缓冲区事件。
要求
| 支持的最低客户端 | Windows 2000 Professional [仅限桌面应用] |
| 支持的最低服务器 | Windows 2000 Server [仅限桌面应用] |
| 标题 | WinConTypes.h (通过 WinCon.h,包括 Windows.h) |