Уведомляющие сообщения ползунка
Элемент управления ползунок уведомляет родительское окно действий пользователя, отправляя родительские WM_HSCROLL или WM_VSCROLL сообщения в зависимости от ориентации элемента управления ползунка. Чтобы обрабатывать эти сообщения, добавьте обработчики для WM_HSCROLL и WM_VSCROLL сообщений в родительское окно. Функции-члены OnHScroll и OnVScroll будут переданы код уведомления, положение ползунка и указатель на объект CSliderCtrl. Обратите внимание, что указатель имеет тип CScrollBar *
, даже если он указывает на CSliderCtrl
объект. Возможно, вам потребуется ввести этот указатель, если необходимо управлять элементом управления ползунка.
Вместо использования кодов уведомлений полосы прокрутки элементы управления ползунка отправляют другой набор кодов уведомлений. Элемент управления ползунок отправляет ТБ_BOTTOM, ТБ_LINEDOWN, ТБ_LINEUP и ТБ_TOP коды уведомлений, только если пользователь взаимодействует с ползунок с помощью клавиатуры. Сообщения уведомлений ТБ_THUМБ POSITION и ТБ_THUМБ TRACK отправляются только в том случае, если пользователь использует мышь. Коды уведомлений ТБ_ENDTRACK, ТБ_PAGEDOWN и ТБ_PAGEUP отправляются в обоих случаях.
В следующей таблице перечислены сообщения уведомлений о ползунках и событиях (коды виртуальных ключей или события мыши), которые вызывают отправку уведомлений. (Список стандартных кодов виртуальных ключей см. в статье Winuser.h.)
Сообщение с уведомлением | Событие, вызывающее отправку уведомления |
---|---|
ТБ_BOTTOM | VK_END |
ТБ_ENDTRACK | WM_KEYUP (пользователь выпустил ключ, отправляющий соответствующий код виртуального ключа) |
ТБ_LINEDOWN | VK_RIGHT или VK_DOWN |
ТБ_LINEUP | VK_LEFT или VK_UP |
ТБ_PAGEDOWN | VK_NEXT (пользователь щелкнул канал ниже или справа от ползунка) |
ТБ_PAGEUP | VK_PRIOR (пользователь щелкнул канал выше или слева от ползунка) |
ТБ_THUМБ POSITION | WM_LBUTTONUP после сообщения уведомления ТБ_THUМБ TRACK |
ТБ_THUМБ TRACK | Перемещение ползунка (пользователь перетаскивал ползунок) |
ТБ_TOP | VK_HOME |