Структура MOUSEINPUT содержит информацию об имитируемом событии нажатия кнопки мыши.
Синтаксис
typedef struct tagMOUSEINPUT { LONG dx; LONG dy; DWORD mouseData; DWORD dwFlags; DWORD time; ULONG_PTR dwExtraInfo; } MOUSEINPUT, *PMOUSEINPUT; |
Члены структуры
dx
Устанавливает абсолютную позицию мыши или величину движения, с тех пор как было сгенерировано последнее событие нажатия мыши , в зависимости от значения члена структуры dwFlags . Абсолютные данные определяются как координата x мыши; относительные данные задаются как число пройденных пикселей.
dy
Устанавливает абсолютную позицию мыши или величину движения, с тех пор как было сгенерировано последнее событие нажатия мыши , в зависимости от значения члена структуры dwFlags . Абсолютные данные определяются как координата y мыши; относительные данные задаются как число пройденных пикселей.mouseData
Если член структуры dwFlags содержит флажок MOUSEEVENTF_WHEEL, то параметр mouseData устанавливает величину перемещения колесика мыши. Положительное значение обозначает, что колесо вращалось вперед от пользователя; отрицательное значение обозначает то, что колесо вращалось обратно к пользователю. Один щелчок колеса определяется как WHEEL_DELTA, который равен 120.
Windows 2000/XP: Если член структуры dwFlags не содержит флажка MOUSEEVENTF_WHEEL, MOUSEEVENTF_XDOWN или MOUSEEVENTF_XUP, то параметр mouseData должен равняться нулю.
Если dwFlags содержит флажок MOUSEEVENTF_XDOWN или MOUSEEVENTF_XUP, то параметр mouseData устанавливает, какие кнопки X были нажаты или отпущены. Это значение может быть любой комбинацией ниже следующее флажков.
Значение | Предназначение |
XBUTTON1 | Устанавливается, если первая кнопка X нажата или отпущена. |
XBUTTON2 | Устанавливается, если вторая кнопка X нажата или отпущена. |
dwFlags
Набор битовых флажков, которые устанавливают различные виды движения мыши и щелчков кнопки. Биты в этом члене могут быть любой разумной комбинацией нижеследующих значений.
Битовые флажки, которые определяют состояние кнопки мыши, устанавливаются так, чтобы указать изменения в состоянии, в условиях непродолжительного движения. Например, если левая кнопка мыши нажата и удерживается, флажок MOUSEEVENTF_LEFTDOWN устанавливается тогда, когда сначала нажата левосторонняя кнопка , а не для последующих движений. Точно так же MOUSEEVENTF_LEFTUP устанавливается только тогда, когда кнопка сначала отпущена.
Вы не можете установить ни флажок MOUSEEVENTF_WHEEL, ни флажки или MOUSEEVENTF_XDOWN или MOUSEEVENTF_XUP одновременно в параметре dwFlags, потому что они оба требуют использования поля mouseData .
Значение | Предназначение |
MOUSEEVENTF_ABSOLUTE | Устанавливает, что члены dx и dy содержат нормализованные абсолютные координаты. Если флажок не установлен, dx и dy содержат относительные данные (изменение в позиции начиная с последней сообщенной позиции). Этот флажок может быть установлен или не установлен, независимо от того какая мышь или другое устройство управления позицией, если есть в наличии, связано с системой. Для дополнительной информации об относительном движении мыши, см. ниже следующее раздел Замечаний. |
MOUSEEVENTF_MOVE | Устанавливает, что перемещение произошло. |
MOUSEEVENTF_LEFTDOWN | Устанавливает, что была нажата левосторонняя кнопка. |
MOUSEEVENTF_LEFTUP | Устанавливает, что была отпущена левосторонняя кнопка. |
MOUSEEVENTF_RIGHTDOWN | Устанавливает, что была нажата правосторонняя кнопка. |
MOUSEEVENTF_RIGHTUP | Устанавливает, что была отпущена правосторонняя кнопка. |
MOUSEEVENTF_MIDDLEDOWN | Устанавливает, что была нажата средняя кнопка. |
MOUSEEVENTF_MIDDLEUP | Устанавливает, что была отпущена средняя кнопка. |
MOUSEEVENTF_VIRTUALDESK | Windows 2000/XP: Преобразование координат в целом рабочего стола. Должен использоваться с флажком MOUSEEVENTF_ABSOLUTE. |
MOUSEEVENTF_WHEEL | Windows NT/2000/XP: Устанавливает, что было колесо перемещено, если мышь имеет колесо. Величина перемещения определяется в поле структуры mouseData. |
MOUSEEVENTF_XDOWN | Windows 2000/XP: Устанавливает, что была нажата кнопка X. |
MOUSEEVENTF_XUP | Windows 2000/XP: Устанавливает, что была отпущена кнопка X. |
time
Отметка времени для события, в миллисекундах. Если этот параметр - 0, система предоставит свою собственную отметку времени.
dwExtraInfo
Устанавливает дополнительное значение, связанное с событием нажатия кнопки мыши. Приложение вызывает функцию GetMessageExtraInfo, чтобы получить эту дополнительную информацию.
Замечания
Если мышь переместилась, обозначив флажок MOUSEEVENTF_MOVE, члены dx и dy определяют информацию об этом перемещении. Информация устанавливается как абсолютные или относительные целочисленные значения.
Если установлено значение MOUSEEVENTF_ABSOLUTE, поля структуры dx и dy содержат нормализованные абсолютные координаты между 0 и 65 535. Процедура события наносит эти координаты на поверхность отображения. Координата (0,0) наносится в левый верхний угол поверхности отображения; координата (65535,65535) наносится в нижний правый угол. Во много экранной системе координаты наносятся на главный монитор.
Windows 2000/XP: Если установлен флажок MOUSEEVENTF_VIRTUALDESK координат наносятся на весь виртуальный рабочий стол.
Если значение MOUSEEVENTF_ABSOLUTE не установлено, dx и dy задают перемещение относительно предыдущего события мыши (последняя фиксируемая позиция). Положительные значения означают перемещения мыши вправо (или вниз); отрицательные значения означают перемещение мыши влево (или вверх).
Относительное движение мыши подчиненно эффектам быстродействия мыши и порогового значения с двойного щелчка кнопкой мыши. Пользователь устанавливает эти три значения ползунком Скорость перемещения указателя (Pointer Speed) вкладки Свойств Мыши (Mouse Properties) на Панели управления (Windows). Вы можете получать и устанавливать эти значения, используя функцию SystemParametersInfo.
Система применяется два теста к заданному относительному перемещению мыши. Если определяемый интервал или по x или оси y больше, чем первое значение порога мыши, а быстродействие мыши - не нулевое, система удваивает интервал. Если заданный интервал или по оси x или по оси y больше чем второе значение порога мыши, а быстродействие мыши равно два, система удваивает интервал, который следовал из применения первого порогового теста. Таким образом это дает возможность системе умножить заданное относительное перемещение мыши по оси x или оси y в четыре раза.
Смотри также
Обзор Ввод данных с клавиатуры, GetMessageExtraInfo, INPUT, SendInput, SystemParametersInfo
Размещение и совместимость MOUSEINPUT |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 4.0 Service Pack 3 |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Нет |
Импортируемая библиотека |
Нет |
Заголовочный файл |
|
- объявлено в |
Winuser.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |