MOUSE_EVENT_RECORD 结构

重要

本文档介绍不再是 生态系统路线图的一部分的控制台平台功能。 我们不建议在新产品中使用此内容,但我们将继续支持未来无限期的现有使用情况。 我们首选的新式解决方案侧重于 虚拟终端序列 ,以实现跨平台方案中的最大兼容性。 可以在 经典控制台与虚拟终端 文档中找到有关此设计决策的详细信息。

描述控制台 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)

另请参阅

COORD

INPUT_RECORD

PeekConsoleInput

ReadConsoleInput

WriteConsoleInput