Поделиться через


Уведомляющие сообщения ползунка

Элемент управления ползунок уведомляет родительское окно действий пользователя, отправляя родительские 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

См. также

Использование CSliderCtrl
Controls