Функция mouse_event


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

Windows NT/2000/XP: Эта функция была заменена. Вместо нее используйте функцию SendInput.

Синтаксис

VOID mouse_event(
    DWORD dwFlags,
    DWORD dx,
    DWORD dy,
    DWORD dwData,
    ULONG_PTR dwExtraInfo
);

Параметры

dwFlags

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

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

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

Значение Предназначение
MOUSEEVENTF_ABSOLUTE Устанавливает, что параметры  dx и dy содержат нормализованные абсолютные координаты. Если флажок не установлен, то эти параметры содержит относительные данные: изменение в позиции начиная от последнего переданного местоположения. Этот флажок может устанавливаться, или не устанавливаться, независимо от того, какая мышь или мышеподобное устройство, если таковое вообще имеется, соединено с системой. За более поздней информацией об относительном движении мыши, см. ниже в разделе Замечаний.
MOUSEEVENTF_MOVE Устанавливает, что произошло перемещение.
MOUSEEVENTF_LEFTDOWN Устанавливает, что нажата левая кнопка.
MOUSEEVENTF_LEFTUP Устанавливает, что отпущена левая кнопка.
MOUSEEVENTF_RIGHTDOWN Устанавливает, что нажата правая кнопка.
MOUSEEVENTF_RIGHTUP Устанавливает, что отпущена правая кнопка.
MOUSEEVENTF_MIDDLEDOWN Устанавливает, что нажата средняя кнопка.
MOUSEEVENTF_MIDDLEUP Устанавливает, что отпущена средняя кнопка.
MOUSEEVENTF_WHEEL Windows NT/2000/XP: Устанавливает, что переместилось колесико, если мышь имеет колесико. Величина перемещения определяется в параметре dwData.
MOUSEEVENTF_XDOWN Windows 2000/XP: Устанавливает, что была нажата X-кнопка.
MOUSEEVENTF_XUP Windows 2000/XP: Устанавливает, что была отпущена X-кнопка.
 

dx

[in] Устанавливает абсолютную позицию мыши по оси X или по ее величине продвижения, с тех пор, как было произведено последнее событие мыши, которая зависит от установки флажка MOUSEEVENTF_ABSOLUTE. Абсолютные данные определяются как фактическая x-координата мыши; относительные данные определяются как перемещение на определенное число мики. Мики (mickey) - это величина, на которую должна продвинуться мышь, чтобы она сообщила, что состоялось перемещение.

dy

[in] Устанавливает абсолютную позицию мыши по оси Y или по ее величине продвижения, с тех пор, как было произведено последнее событие мыши, которая зависит от установки флажка MOUSEEVENTF_ABSOLUTE. Абсолютные данные определяются как фактическая y-координата мыши; относительные данные определяются как перемещение на определенное число мики.

dwData

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

Windows 2000/XP: Если параметр dwFlags содержит MOUSEEVENTF_XDOWN или MOUSEEVENTF_XUP, то dwData определяет, какие X-кнопки нажимались или отпускались. Это значение может быть любой комбинацией ниже перечисленных флажков.

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

Значение Предназначение
XBUTTON1 Устанавливается, если была нажата или отпущена первая Х-кнопка.
 XBUTTON2 Устанавливается, если была нажата или отпущена вторая Х-кнопка.

dwExtraInfo

[in] Устанавливает дополнительное значение, связанное с событием мыши. Приложение вызывает функцию GetMessageExtraInfo, чтобы получить эту дополнительную информацию.

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

У этой функции нет возвращаемого значения.

Замечания

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

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

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

Относительное движение мыши подчинено настройкам скорости мыши и уровня ускорения. Конечный пользователь устанавливает эти величины, используя программу Mouse (Мышь) в Панели управления (Control Panel). Приложение получает и устанавливает эти значения при помощи функции SystemParametersInfo.

Система применяет два теста к заданному относительному движению мыши при применении ускорения. Если указанное расстояние, или по оси x, или по оси y больше, чем первая пороговая величина мыши, и уровень ускорения мыши не является нулевым, операционная система удваивает это расстояние. Если указанное расстояние или по оси x- или по оси y- больше, чем вторая пороговая величина мыши, и уровень ускорения мыши равен двум, операционная система удваивает интервал, который получился в результате применения первого порогового теста. В соответствии с этим, для операционной системы допустимо умножать определенное как относительное движение мыши по оси x- или по оси y- до четырех раз.

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

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

Смотри также

Обзор Ввод данных от мыши, Функции, используемые мышью, GetMessageExtraInfo, SystemParametersInfo

Размещение и совместимость mouse_event

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 3.1 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

User32.lib

Заголовочный файл

 

- объявлено в

Winuser.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки
Переведено 27.11.2001 15:36 ©Copyright V. Sokovikov
Hosted by uCoz