Шаг 367 - CWnd::OnMouseWheel

afx_msg BOOL OnMouseWheel( UINT nFlags, short zDelta, CPoint pt );

Возвращаемое значение
Отлично от нуля если колесо мыши допускает прокрутку, иначе 0.

Параметры
nFlags
Указывает различные нажатые виртуальные клавиши. Этот параметр может быть любой комбинацией следующих значений:

MK_CONTROL 	Установлен если клавиша CTRL нажата.
MK_LBUTTON 	Установлен если левая кнопка мыши нажата.
MK_MBUTTON 	Установлен если средняя кнопка мыши нажата.
MK_RBUTTON 	Установлен если правая кнопка мыши нажата.
MK_SHIFT 		Установлен если SHIFT нажата. 

ZDelta
Указывает вращаемое расстояние. Значение zDelta выражено в множителях или разделах WHEEL_DELTA, который является 120. Значение меньше чем нуль указывает вращение обратно (к пользователю) в то время как значение большее чем нуль указывает вращение вперед (дальше от пользователя). Пользователь может возвращать этот ответ, заменяя установку колеса в программном обеспечении мыши.
pt
Определяет x и y координату курсора. Эти координаты - всегда относительно левого верхнего угла окна.

Замечания
Рамка вызывает эту функцию поскольку пользователь вращает колесо мыши и сталкивается со следующим вырезом колеса. Если перегружена, OnMouseWheel вызывает значение по умолчанию WM_MOUSEWHEEL. Windows автоматически направляет сообщение к элементу управления или дочернему окну, которое имеет фокус ввода. Функция Win32 DefWindowProc распространяет сообщение по цепочке к окну которое обрабатывает его.
zDelta параметр - множитель WHEEL_DELTA, который установлен в 120. Это значение - порог для действия, которое нужно принять для одного такого действия (например, при прокрутке вперед).
Дельта была установлена к 120, чтобы учесть будущие колеса с более тонкой разрешающая способностью, типа свободно вращающегося колеса без вырезов. Такое устройство могло бы посылать большее количество сообщений при вращении, но с меньшим значением в каждом сообщении. Поддерживать эту возможность вы объединяете входящие дельты значения пока WHEEL_DELTA не достигнут (так что Вы получаете тот же самый ответ для данного вращения дельты), или листаете частичные строки в ответ на более частые сообщения. Вы могли бы также выбирать Вашу степень детализации прокрутки и накапливать дельты, пока WHEEL_DELTA не достигнут.
Перегрузите эту функцию, чтобы обеспечить Ваше собственное поведение листающего колеса мыши.
OnMouseWheel обрабатывает сообщения для Windows NT 4.0. Для Windows 95 или Windows NT 3.51 обработки сообщения используйте OnRegisteredMouseWheel.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 08.01.2002