Поделиться через


Структура 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 0x0001 Произошло изменение положения мыши.
MOUSE_WHEELED 0x0004 Вертикальное колесо мыши было перемещено.

Если высокое слово элемента dwButtonState содержит положительное значение, колесо было повернуто вперед, от пользователя. В противном случае колесо было повернуто назад, в сторону пользователя.

Замечания

События мыши помещаются в входной буфер, когда консоль находится в режиме мыши (ENABLE_MOUSE_INPUT).

События мыши создаются всякий раз, когда пользователь перемещает мышь, или нажимает или освобождает одну из кнопок мыши. События мыши помещаются в входной буфер консоли, только если группа консоли имеет фокус клавиатуры, а курсор находится в границах окна консоли.

Примеры

Пример см. в статье о чтении событий входного буфера.

Requirements

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхний колонтитул WinConTypes.h (через WinCon.h, включите Windows.h)

См. также

COORD

INPUT_RECORD

PeekConsoleInput

ReadConsoleInput

WriteConsoleInput