# 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