функция mouse_event (winuser.h)
Функция mouse_event синтезирует движения мыши и нажатия кнопки.
Синтаксис
void mouse_event(
[in] DWORD dwFlags,
[in] DWORD dx,
[in] DWORD dy,
[in] DWORD dwData,
[in] ULONG_PTR dwExtraInfo
);
Параметры
[in] dwFlags
Тип: DWORD
Управляет различными аспектами движения мыши и нажатием кнопки. Этот параметр может быть определенным сочетанием следующих значений.
Значения, указывающие состояние кнопки мыши, задаются для указания изменений состояния, а не текущих условий. Например, если левая кнопка мыши нажата и удерживается, MOUSEEVENTF_LEFTDOWN устанавливается при первом нажатии левой кнопки, но не для последующих движений. Аналогичным образом MOUSEEVENTF_LEFTUP устанавливается только при первом освобождении кнопки.
В параметре dwFlags нельзя указать одновременно как MOUSEEVENTF_WHEEL, так и MOUSEEVENTF_XDOWN или MOUSEEVENTF_XUP, так как для обоих из них требуется использовать поле 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 должно быть равно нулю.
Значение | Значение |
---|---|
|
Задает значение, если первая кнопка X была нажата или отпущена. |
|
Задает значение, если вторая кнопка 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 указывают относительные движения с момента создания последнего события мыши (последняя указанная позиция). Положительные значения означают перемещение мыши вправо (или вниз); Отрицательные значения означают перемещение мыши влево (или вверх).
Относительное движение мыши зависит от параметров скорости и уровня ускорения мыши. Пользователь задает эти значения с помощью приложения Mouse в панель управления. Приложение получает и задает эти значения с помощью функции 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 |
См. также раздел
Основные понятия
Другие ресурсы
Справочные материалы
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по