MOUSE_EVENT_RECORD

Структура MOUSE_EVENT_RECORD используется консольной структурой INPUT_RECORD для получения сообщений мыши.
typedef struct _MOUSE_EVENT_RECORD {
    COORD dwMousePosition;
    DWORD dwButtonState;
    DWORD dwControlKeyState;
    DWORD dwEventFlags;
} MOUSE_EVENT_RECORD;

Элементы

dwMousePosition
Положение курсора в координатах экранного буфера (структура COORD).
dwButtonState
Состояние клавиш мыши. Младший бит соответствует самой левой кнопке, следующий - самой правой, Следующий бит - следующая за левой клавиша. Далее биты соответствуют клавишам слева направо. Если бит установлен - клавиша нажата.
Определены следующие константы для первых пяти клавиш мыши:

FROM_LEFT_1ST_BUTTON_PRESSED
RIGHTMOST_BUTTON_PRESSED
FROM_LEFT_2ND_BUTTON_PRESSED
FROM_LEFT_3RD_BUTTON_PRESSED
FROM_LEFT_4TH_BUTTON_PRESSED
dwControlKeyState
Состояние управляющих клавиш. Может быть комбинацией следующих значений:
КлавишаОписание
CAPSLOCK_ON CAPS LOCK включён.
ENHANCED_KEY Клавиша расширенная.
LEFT_ALT_PRESSED Левый ALT нажат.
LEFT_CTRL_PRESSED Левый CTRL нажат.
NUMLOCK_ON NUM LOCK включён.
RIGHT_ALT_PRESSED Правый ALT нажат.
RIGHT_CTRL_PRESSED Правый CTRL нажат.
SCROLLLOCK_ON SCROLL LOCK включён.
SHIFT_PRESSED Клавиша SHIFT нажата.
dwEventFlags
Тип сообщения мыши. Если ноль, то кнопка мыши была нажата или отпущена. Иначе одно из следующих значений:
СобытиеОписание
DOUBLE_CLICK Второе нажатие при двойном щелчке (первое нажатие приходит как обычное сообщение).
MOUSE_MOVED Позиция мыши изменилась.
MOUSE_WHEELED Устанавливается при вертикальной прокрутке колёсика на мышке. Если установлен этот флаг, то в старшем слове dwButtonState содержтся значение, кратное WHEEL_DELTA. По умолчанию это значение равно 120, но может изменяться в зависимости от драйвера мыши.
MOUSE_HWHEELED Windows Vista/2008/7: Устанавливается при горизонтальной прокрутке колёсика на мышке. Если установлен этот флаг, то в старшем слове dwButtonState содержтся значение, кратное WHEEL_DELTA. По умолчанию это значение равно 120, но может изменяться в зависимости от драйвера мыши.

Замечания

Сообщения мыши помещаются во входной буфер, когда консоль имеет установленный флаг ENABLE_MOUSE_INPUT.
Сообщения мыши посылаются в буфер, только если консоль имеет активный клавиатурный фокус и курсор находится в границах консольного окна.
Смотрите также:
COORD, PeekConsoleInput, ReadConsoleInput, WriteConsoleInput, INPUT_RECORD