сообщение WM_MOUSEWHEEL
Отправляется в окно фокуса при повороте колесика мыши. Функция DefWindowProc распространяет сообщение на родительский элемент окна. Не должно быть внутренней пересылки сообщения, так как DefWindowProc распространяет его вверх по родительской цепочке, пока не обнаружит окно, которое обрабатывает его.
Окно получает это сообщение через функцию WindowProc.
#define WM_MOUSEWHEEL 0x020A
Параметры
-
wParam
-
Слово с высоким порядком указывает расстояние, которое колесо поворачивается, выражается в нескольких или делениях WHEEL_DELTA, что составляет 120. Положительное значение указывает, что колесо было повернуто вперед, в сторону от пользователя; Отрицательное значение указывает, что колесо было повернуто назад к пользователю.
Слово с низким порядком указывает, отключены ли различные виртуальные ключи. Этот параметр может быть одним или несколькими из следующих значений.
Ценность Значение - MK_CONTROL
- 0x0008
Клавиша CTRL вниз. - MK_LBUTTON
- 0x0001
Левая кнопка мыши вниз. - MK_MBUTTON
- 0x0010
Средняя кнопка мыши вниз. - MK_RBUTTON
- 0x0002
Правая кнопка мыши вниз. - MK_SHIFT
- 0x0004
Клавиша SHIFT вниз. - MK_XBUTTON1
- 0x0020
XBUTTON1 вниз. - MK_XBUTTON2
- 0x0040
XBUTTON2 вниз. -
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 находится в низком порядке
Важный
Не используйте loWORD или макросы HIWORD для извлечения координат курсора x-и y, так как эти макросы возвращают неверные результаты в системах с несколькими мониторами. Системы с несколькими мониторами могут иметь отрицательные координаты x и y, а LOWORD и HIWORD рассматривать координаты как неподписанные количества.
Поворот колеса будет несколькими WHEEL_DELTA, который установлен в 120. Это пороговое значение для выполнения действий, и одно такое действие (например, прокрутка одного добавочного значения) должна выполняться для каждого разностного значения.
В разностном режиме было установлено значение 120, чтобы корпорация Майкрософт или другие поставщики могли создавать колеса тонкого разрешения (свободно вращающееся колесо без замечания), чтобы отправлять больше сообщений на поворот, но с меньшим значением в каждом сообщении. Чтобы использовать эту функцию, можно добавить входящие разностные значения до тех пор, пока WHEEL_DELTA не достигнут (поэтому для разностного поворота вы получаете тот же ответ) или прокрутите частичные строки в ответ на более частые сообщения. Вы также можете выбрать степень детализации прокрутки и накапливать разностные значения, пока она не будет достигнута.
Обратите внимание, что fwKeys для MSH_MOUSEWHEELнет. В противном случае параметры точно совпадают с параметрами WM_MOUSEWHEEL.
Приложение может пересылать MSH_MOUSEWHEEL в все внедренные объекты или элементы управления. Приложение требуется для отправки сообщения активному встроенному приложению OLE. Приложение отправляет его в элемент управления с поддержкой колес с фокусом. Если приложение отправляет сообщение в элемент управления, он может проверить возвращаемое значение, чтобы узнать, было ли обработано сообщение. Элементы управления необходимы для возврата значения TRUE, если они обрабатывают сообщение.
Требования
Требование | Ценность |
---|---|
Минимальный поддерживаемый клиент |
Windows 2000 Профессиональный [только классические приложения] |
Минимальный поддерживаемый сервер |
Windows 2000 Server [только классические приложения] |
Заголовок |
|
См. также
-
Справочник
-
концептуальные
-
другие ресурсы