Структура MOUSEINPUT 


Структура 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

Нет

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

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz