сообщение WM_MOUSEHWHEEL
Отправляется в активное окно, когда горизонтальное колесо прокрутки мыши наклоняется или вращается. Функция DefWindowProc распространяет сообщение на родительский элемент окна. Не должно быть внутренней пересылки сообщения, так как DefWindowProc распространяет его вверх по родительской цепочке, пока не обнаружит окно, которое обрабатывает его.
Окно получает это сообщение через функцию WindowProc .
#define WM_MOUSEHWHEEL 0x020E
Параметры
-
wParam
-
Слово с высоким порядком указывает расстояние, которое колесо поворачивается, выражается в нескольких или факторах WHEEL_DELTA, что имеет значение 120. Положительное значение указывает, что колесо было повернуто справа; отрицательное значение указывает, что колесо было повернуто влево.
Слово с низким порядком указывает, отключены ли различные виртуальные ключи. Этот параметр может быть одним или несколькими из следующих значений.
Значение Значение - MK_CONTROL
- 0x0008
Клавиша CTRL вниз. - MK_LBUTTON
- 0x0001
Левая кнопка мыши вниз. - MK_МБ UTTON
- 0x0010
Средняя кнопка мыши вниз. - MK_RBUTTON
- 0x0002
Правая кнопка мыши вниз. - MK_SHIFT
- 0x0004
Клавиша SHIFT вниз. - MK_XBUTTON1
- 0x0020
Первая кнопка X вниз. - MK_XBUTTON2
- 0x0040
Вторая кнопка X вниз. -
lParam
-
Слово с низким порядком указывает координату указателя x относительно левого верхнего угла экрана.
Слово с высоким порядком указывает координату указателя y относительно левого верхнего угла экрана.
Возвращаемое значение
Если приложение обрабатывает это сообщение, оно должно возвращать ноль.
Замечания
Используйте следующий код, чтобы получить сведения в параметре wParam .
fwKeys = GET_KEYSTATE_WPARAM(wParam);
zDelta = GET_WHEEL_DELTA_WPARAM(wParam);
Используйте следующий код для получения горизонтальной и вертикальной позиции.
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
Как отмечалось выше, координата x находится в низком порядке, чем возвращаемое значение; координата y находится в коротком формате высокого порядка (оба представляют подписанные значения, так как они могут принимать отрицательные значения в системах с несколькими мониторами). Если возвращаемое значение назначено переменной, можно использовать макрос MAKEPOINTS для получения структуры POINTS из возвращаемого значения. Вы также можете использовать макрос GET_X_LPARAM или GET_Y_LPARAM для извлечения координат x-или y.
Важно!
Не используйте макросы LOWORD или HIWORD для извлечения координат x-и y позиции курсора, так как эти макросы возвращают неверные результаты в системах с несколькими мониторами. Системы с несколькими мониторами могут иметь отрицательные координаты x и y, а LOWORD и HIWORD обрабатывают координаты как неподписанные количества.
Поворот колеса — это несколько WHEEL_DELTA, что имеет значение 120. Это пороговое значение для выполнения действий, и одно такое действие (например, прокрутка одного добавочного значения) должна выполняться для каждого разностного значения.
Для разностного диска было установлено значение 120, чтобы корпорация Майкрософт или другие поставщики могли создавать колеса с более подробным разрешением (например, свободно вращающееся колесо без замечания), чтобы отправлять больше сообщений на поворот, но с меньшим значением в каждом сообщении. Чтобы использовать эту функцию, можно добавить входящие значения разностных значений до достижения WHEEL_DELTA (поэтому для разностного поворота вы получаете тот же ответ) или прокрутите частичные строки в ответ на более частые сообщения. Вы также можете выбрать степень детализации прокрутки и накапливать разностные значения, пока она не будет достигнута.
Requirements
Требование | Значение |
---|---|
Минимальная версия клиента |
Windows Vista [только классические приложения] |
Минимальная версия сервера |
Windows Server 2008 [только классические приложения] |
Верхний колонтитул |
|
См. также
-
Ссылка
-
Концептуальной
-
Другие ресурсы