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


функция mouse_event (winuser.h)

Функция mouse_event синтезирует движения мыши и нажатия кнопок.

Примечание Эта функция заменена. Вместо этого используйте SendInput .
 

Синтаксис

void mouse_event(
  [in] DWORD     dwFlags,
  [in] DWORD     dx,
  [in] DWORD     dy,
  [in] DWORD     dwData,
  [in] ULONG_PTR dwExtraInfo
);

Параметры

[in] dwFlags

Тип: DWORD

Управляет различными аспектами движения мыши и нажатия кнопок. Этот параметр может быть определенным сочетанием следующих значений.

Значение Значение
MOUSEEVENTF_ABSOLUTE
0x8000
Параметры dx и dy содержат нормализованные абсолютные координаты. Если значение не задано, эти параметры содержат относительные данные: изменение позиции с момента последнего сообщаемого положения. Этот флаг может быть установлен или не установлен, независимо от типа мыши или устройства, похожего на мышь, если таковой имеется, подключен к системе. Дополнительные сведения об относительном движении мыши см. в следующем разделе Примечания.
MOUSEEVENTF_LEFTDOWN
0x0002
Левая кнопка не работает.
MOUSEEVENTF_LEFTUP
0x0004
Левая кнопка находится вверх.
MOUSEEVENTF_MIDDLEDOWN
0x0020
Средняя кнопка вниз.
MOUSEEVENTF_MIDDLEUP
0x0040
Средняя кнопка вверх.
MOUSEEVENTF_MOVE
0x0001
Произошло перемещение.
MOUSEEVENTF_RIGHTDOWN
0x0008
Кнопка справа не работает.
MOUSEEVENTF_RIGHTUP
0x0010
Кнопка справа находится вверх.
MOUSEEVENTF_WHEEL
0x0800
Колесо перемещено, если у мыши есть колесо. Величина перемещения указывается в dwData
MOUSEEVENTF_XDOWN
0x0080
Нажата кнопка X.
MOUSEEVENTF_XUP
0x0100
Кнопка X была отпущена.
MOUSEEVENTF_WHEEL
0x0800
Кнопка колесика повернется.
MOUSEEVENTF_HWHEEL
0x01000
Кнопка колесика наклонена.
 

Значения, указывающие состояние кнопки мыши, задаются для указания изменений в состоянии, а не текущих условий. Например, если левая кнопка мыши нажата и удерживается, MOUSEEVENTF_LEFTDOWN устанавливается при первом нажатии левой кнопки, но не для последующих движений. Аналогичным образом MOUSEEVENTF_LEFTUP устанавливается только при первом отпускаи кнопки.

Нельзя указать одновременно MOUSEEVENTF_WHEEL и MOUSEEVENTF_XDOWN или MOUSEEVENTF_XUP в параметре dwFlags , так как для них обоих требуется использовать поле dwData .

[in] dx

Тип: DWORD

Абсолютное положение мыши по оси X или объем ее движения с момента создания последнего события мыши в зависимости от настройки MOUSEEVENTF_ABSOLUTE. Абсолютные данные указываются в качестве фактической координаты X мыши; относительные данные указываются как количество перемещенных микки. Микки — это сумма, которую мышь должна переместить, чтобы сообщить о перемещении.

[in] dy

Тип: DWORD

Абсолютное положение мыши по оси Y или объем ее движения с момента создания последнего события мыши в зависимости от настройки MOUSEEVENTF_ABSOLUTE. Абсолютные данные указываются в качестве фактической координаты мыши по оси Y; относительные данные указываются как количество перемещенных микки.

[in] dwData

Тип: DWORD

Если dwFlags содержит MOUSEEVENTF_WHEEL, то dwData указывает величину перемещения колесика. Положительное значение указывает, что колесо повернулось вперед, от пользователя; отрицательное значение указывает, что колесо повернулось назад к пользователю. Один щелчок колесиком определяется как WHEEL_DELTA, то есть 120.

Если dwFlags содержит MOUSEEVENTF_HWHEEL, то dwData указывает величину перемещения колесика. Положительное значение указывает, что колесо было наклонена вправо; Отрицательное значение указывает, что колесо было наклонена влево.

Если dwFlags содержит MOUSEEVENTF_XDOWN или MOUSEEVENTF_XUP, то dwData указывает, какие кнопки X были нажаты или отпущены. Это значение может быть любым сочетанием следующих флагов.

Если параметр dwFlags не MOUSEEVENTF_WHEEL, MOUSEEVENTF_XDOWN или MOUSEEVENTF_XUP, значение dwData должно быть равно нулю.

Значение Значение
XBUTTON1
0x0001
Задает значение, если первая кнопка X была нажата или отпущена.
XBUTTON2
0x0002
Укажите, была ли нажата или отпущена вторая кнопка X.

[in] dwExtraInfo

Тип: ULONG_PTR

Дополнительное значение, связанное с событием мыши. Приложение вызывает GetMessageExtraInfo для получения этих дополнительных сведений.

Возвращаемое значение

None

Remarks

Если мышь переместилась, на что указывает MOUSEEVENTF_MOVE устанавливается, dx и dy удерживают сведения об этом движении. Сведения указываются как абсолютные или относительные целочисленные значения.

Если указано MOUSEEVENTF_ABSOLUTE значение, dx и dy содержат нормализованные абсолютные координаты от 0 до 65 535. Процедура события сопоставляет эти координаты с поверхностью дисплея. Координаты (0,0) сопоставляется с левым верхним углом поверхности дисплея, (65535 65535) — в правом нижнем углу.

Если значение MOUSEEVENTF_ABSOLUTE не указано, dx и dy указывают относительные движения с момента создания последнего события мыши (последней сообщаемой позиции). Положительные значения означают перемещение мыши вправо (или вниз); Отрицательные значения означают, что мышь переместилась влево (или вверх).

Относительное перемещение мыши зависит от параметров скорости и уровня ускорения мыши. Пользователь задает эти значения с помощью приложения Мыши в панель управления. Приложение получает и задает эти значения с помощью функции SystemParametersInfo .

Система применяет два теста к указанному относительному движению мыши при применении ускорения. Если указанное расстояние по оси X или Y больше первого порогового значения мыши, а уровень ускорения мыши не равен нулю, операционная система удваивает расстояние. Если указанное расстояние по оси X или Y больше второго порогового значения мыши, а уровень ускорения мыши равен двум, операционная система удваивает расстояние, полученное в результате применения первого порогового теста. Таким образом, операционная система может умножить относительно заданное движение мыши по оси X или Y до четырех раз.

После применения ускорения система масштабирует итоговое значение на нужную скорость мыши. Скорость мыши может варьироваться от 1 (самая медленная) до 20 (самая быстрая) и представляет, сколько перемещается указатель в зависимости от расстояния, которое перемещает мышь. Значение по умолчанию — 10, что не приводит к дополнительным изменениям движения мыши.

Функция mouse_event используется для синтеза событий мыши приложениями, которым это необходимо сделать. Он также используется приложениями, которым требуется получить от мыши больше сведений, чем ее положение и состояние кнопки. Например, если производитель планшета хочет передать информацию на основе пера в свои приложения, он может написать библиотеку DLL, которая напрямую взаимодействует с оборудованием планшета, получает дополнительные сведения и сохраняет их в очереди. Затем библиотека DLL вызывает mouse_event со стандартной кнопкой и данными о положении x/y, а также в параметре dwExtraInfo указателем или индексом на дополнительную информацию в очереди. Когда приложению требуются дополнительные сведения, оно вызывает библиотеку DLL с указателем или индексом, хранящимся в dwExtraInfo, и библиотека DLL возвращает дополнительные сведения.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll

См. также раздел

Основные понятия

GetMessageExtraInfo

Ввод с помощью мыши

Другие ресурсы

Справочные материалы

SystemParametersInfo