MOUSE_EVENT_RECORD

【勇芳软件工作室】汉化HomePreviousNext

控制台INPUT_RECORD结构中使用MOUSE_EVENT_RECORD结构来报告鼠标输入事件。

typedef struct _MOUSE_EVENT_RECORD { //更多

COORD dwMousePosition;

DWORD dwButtonState;

DWORD dwControlKeyState;

DWORD dwEventFlags;

} MOUSE_EVENT_RECORD;

会员

dwMousePosition

根据屏幕缓冲区的字符单元坐标指定光标的位置。

dwButtonState

指示鼠标按钮的状态。最低有效位对应于最左侧的鼠标按钮。下一个最低有效位对应于最右边的鼠标按钮。下一位表示下一个到最左侧的鼠标按钮。然后这些位从左到右对应到鼠标按钮。如果按下按钮,则为1。

为前五个鼠标按钮定义了以下常量:

FROM_LEFT_1ST_BUTTON_PRESSED
RIGHTMOST_BUTTON_PRESSED
FROM_LEFT_2ND_BUTTON_PRESSED
FROM_LEFT_3RD_BUTTON_PRESSED
FROM_LEFT_4TH_BUTTON_PRESSED

dwControlKeyState

表示控制键的状态。该成员可以是以下值的组合:

含义
RIGHT_ALT_PRESSED按ALT键。
LEFT_ALT_PRESSED按左ALT键。
RIGHT_CTRL_PRESSED右键CTRL键被按下。
LEFT_CTRL_PRESSED按住左侧的CTRL键。
CAPSLOCK_ONCAPS LOCK指示灯亮起。
ENHANCED_KEY关键是增强了。
NUMLOCK_ONNUM LOCK指示灯亮起。
SCROLLLOCK_ONSCROLL LOCK指示灯亮起。
SHIFT_PRESSED按SHIFT键。

dwEventFlags

表示鼠标事件的类型。如果该值为零,则表示按下或释放鼠标按钮。否则,该值为以下之一:

含义
DOUBLE_CLICK发生双击的第二次点击(按钮按)。第一次点击作为常规按钮事件返回。
MOUSE_MOVED鼠标位置发生变化。

备注

当控制台处于鼠标模式(ENABLE_MOUSE_INPUT)时,鼠标事件会放置在输入缓冲区中。

只要用户移动鼠标,或按下或释放其中一个鼠标按钮,就会生成鼠标事件。仅当控制台组具有键盘焦点并且光标位于控制台窗口的边框内时,鼠标事件才会放置在控制台的输入缓冲区中。

也可以看看

INPUT_RECORD, PeekConsoleInput, ReadConsoleInput, WriteConsoleInput