Структура MOUSEINPUT (winuser.h)
Содержит сведения о имитированном событии мыши.
Синтаксис
typedef struct tagMOUSEINPUT {
LONG dx;
LONG dy;
DWORD mouseData;
DWORD dwFlags;
DWORD time;
ULONG_PTR dwExtraInfo;
} MOUSEINPUT, *PMOUSEINPUT, *LPMOUSEINPUT;
Члены
dx
Тип: LONG
Абсолютное положение мыши или объем движения с момента создания последнего события мыши в зависимости от значения элемента dwFlags . Абсолютные данные указываются как координата x мыши; относительные данные указываются как количество перемещенных пикселей.
dy
Тип: LONG
Абсолютное положение мыши или объем движения с момента создания последнего события мыши в зависимости от значения элемента dwFlags . Абсолютные данные указываются как координата Y мыши; относительные данные указываются как количество перемещенных пикселей.
mouseData
Тип: DWORD
Если dwFlags содержит MOUSEEVENTF_WHEEL, mouseData указывает величину перемещения колесика. Положительное значение указывает, что колесо повернулось вперед, от пользователя; отрицательное значение указывает, что колесо повернулось назад к пользователю. Один щелчок колесиком определяется как WHEEL_DELTA, то есть 120.
Windows Vista: если dwFlags содержит MOUSEEVENTF_HWHEEL, то dwData указывает величину перемещения колесика. Положительное значение указывает, что колесо повернулось вправо; Отрицательное значение указывает, что колесо было повернулось влево. Один щелчок колесиком определяется как WHEEL_DELTA, то есть 120.
Если dwFlags не содержит MOUSEEVENTF_WHEEL, MOUSEEVENTF_XDOWN или MOUSEEVENTF_XUP, значение mouseData должно быть равно нулю.
Если dwFlags содержит MOUSEEVENTF_XDOWN или MOUSEEVENTF_XUP, mouseData указывает, какие кнопки X были нажаты или отпущены. Это значение может быть любым сочетанием следующих флагов.
Значение | Значение |
---|---|
XBUTTON1 0x0001 |
Задает значение, если первая кнопка X нажата или отпущена. |
XBUTTON2 0x0002 |
Задает значение , если вторая кнопка X нажата или отпущена. |
dwFlags
Тип: DWORD
Набор битовых флагов, указывающих различные аспекты движения мыши и нажатий кнопок. Биты в этом элементе могут быть любым разумным сочетанием следующих значений.
Битовые флаги, указывающие состояние кнопки мыши, задаются для указания изменений в состоянии, а не текущих условий. Например, если левая кнопка мыши нажата и удерживается, MOUSEEVENTF_LEFTDOWN устанавливается при первом нажатии левой кнопки, но не для последующих движений. Аналогичным образом MOUSEEVENTF_LEFTUP устанавливается только при первом освобождении кнопки.
Нельзя одновременно указать флаг MOUSEEVENTF_WHEEL и флаг MOUSEEVENTF_XDOWN или MOUSEEVENTF_XUP в параметре dwFlags , так как для них обоих требуется использовать поле mouseData .
Значение | Значение |
---|---|
MOUSEEVENTF_MOVE 0x0001 |
Произошло перемещение. |
MOUSEEVENTF_LEFTDOWN 0x0002 |
Нажата левая кнопка. |
MOUSEEVENTF_LEFTUP 0x0004 |
Левая кнопка была отпущена. |
MOUSEEVENTF_RIGHTDOWN 0x0008 |
Нажата правая кнопка. |
MOUSEEVENTF_RIGHTUP 0x0010 |
Отпущена правая кнопка. |
MOUSEEVENTF_MIDDLEDOWN 0x0020 |
Нажата средняя кнопка. |
MOUSEEVENTF_MIDDLEUP 0x0040 |
Средняя кнопка была отпущена. |
MOUSEEVENTF_XDOWN 0x0080 |
Нажата кнопка X. |
MOUSEEVENTF_XUP 0x0100 |
Кнопка X была отпущена. |
MOUSEEVENTF_WHEEL 0x0800 |
Колесо было перемещено, если у мыши есть колесо. Величина перемещения указывается в mouseData. |
MOUSEEVENTF_HWHEEL 0x1000 |
Колесо было перемещено по горизонтали, если у мыши есть колесо. Величина перемещения указывается в mouseData. Windows XP/2000: это значение не поддерживается. |
MOUSEEVENTF_MOVE_NOCOALESCE 0x2000 |
Сообщения WM_MOUSEMOVE не будут объединяться. Поведение по умолчанию — объединение WM_MOUSEMOVE сообщений. Windows XP/2000: это значение не поддерживается. |
MOUSEEVENTF_VIRTUALDESK 0x4000 |
Сопоставляет координаты со всем рабочим столом. Должен использоваться с MOUSEEVENTF_ABSOLUTE. |
MOUSEEVENTF_ABSOLUTE 0x8000 |
Элементы dx и dy содержат нормализованные абсолютные координаты. Если флаг не задан, dxи dy содержат относительные данные (изменение позиции с момента последнего сообщаемого положения). Этот флаг можно установить или не задать, независимо от типа мыши или другого указывающего устройства, если таковое имеется, подключенного к системе. Дополнительные сведения об относительном движении мыши см. в следующем разделе Примечания. |
time
Тип: DWORD
Метка времени для события в миллисекундах. Если этот параметр равен 0, система предоставит собственную метку времени.
dwExtraInfo
Тип: ULONG_PTR
Дополнительное значение, связанное с событием мыши. Приложение вызывает GetMessageExtraInfo для получения этих дополнительных сведений.
Комментарии
Если мышь переместилась, MOUSEEVENTF_MOVE,dx и dy указывают сведения об этом перемещении . Сведения указываются как абсолютные или относительные целочисленные значения.
Если указано MOUSEEVENTF_ABSOLUTE значение, dx и dy содержат нормализованные абсолютные координаты от 0 до 65 535. Процедура события сопоставляет эти координаты с поверхностью дисплея. Координаты (0,0) сопоставляется с левым верхним углом поверхности дисплея; координаты (65535,65535) сопоставляется с правым нижним углом. В мультимониторной системе координаты сопоставляется с основным монитором.
Если указано MOUSEEVENTF_VIRTUALDESK , координаты сопоставляется со всем виртуальным рабочим столом.
Если значение MOUSEEVENTF_ABSOLUTE не указано, dxи dy указывают перемещение относительно предыдущего события мыши (последней сообщаемой позиции). Положительные значения означают перемещение мыши вправо (или вниз); Отрицательные значения означают, что мышь переместилась влево (или вверх).
Относительное движение мыши зависит от влияния скорости мыши и пороговых значений двух мышей. Пользователь задает эти три значения с помощью ползунка Скорость указателя на странице свойств мыши панель управления. Эти значения можно получить и задать с помощью функции SystemParametersInfo .
Система применяет два теста к указанному относительному перемещению мыши. Если указанное расстояние по оси x или y больше первого порогового значения мыши, а скорость мыши не равна нулю, система удваивает расстояние. Если указанное расстояние вдоль оси x или y больше второго порогового значения мыши, а скорость мыши равна двум, система удваивает расстояние, полученное в результате применения первого порогового теста. Таким образом, система может умножить указанное относительное перемещение мыши по оси x или y до четырех раз.
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Верхняя часть | winuser.h (включая Windows.h) |
См. также раздел
Основные понятия
Справочные материалы