Инициализация полосы просмотра

Сообщения от полосы просмотра

Если полоса просмотра была создана как орган управления, то сообщения WM_HSCROLL и WM_VSCROLL будет получать функция родительского окна.

Если полоса просмотра была определена при создании окна, то сообщения WM_HSCROLL и WM_VSCROLL от нее будут поступать в функцию окна, имеющего полосы просмотра.

Параметр wParam сообщений полосы просмотра содержит код действия, которое совершено пользователем над полосой просмотра. Возможны следующие значения:

Код полосы просмотра Описание
SB_LEFT, SB_TOP (используются одинаковые значения констант для разных символических имен) Сдвиг влево в начало документа (горизонтальная полоса просмотра), сдвиг вверх в начало документа (вертикальная полоса просмотра)
SB_LINELEFT, SB_LINEUP Сдвиг влево на одну строку, сдвиг вверх на одну строку
SB_LINERIGHT, SB_LINEDOWN Сдвиг вправо на одну строку, сдвиг вниз на одну строку
SB_PAGELEFT, SB_PAGEUP Сдвиг на одну страницу влево, сдвиг на одну страницу вверх
SB_PAGERIGHT, SB_PAGEDOWN Сдвиг на одну страницу вправо, сдвиг на одну страницу вниз
SB_RIGHT, SB_BOTTOM Сдвиг вправо в конец документа, сдвиг вниз в конец документа
SB_THUMBPOSITION Сдвиг в абсолютную позицию. Текущая позиция определяется младшим словом параметра lParam
SB_ENDSCROLL Сообщение приходит в тот момент, когда вы отпускаете клавишу мыши после работы с полосой просмотра. Это сообщение обычно игнорируется (передается функции DefWindowProc)
SB_THUMBTRACK Перемещение ползунка полосы просмотра. Текущая позиция определяется младшим словом параметра lParam

Так как действия, выполняемые при свертке, одинаковы для полосы просмотра и дублирующих ее клавиш, имеет смысл предусмотреть единый обработчик сообщений от полосы просмотра.


После того как была создана полоса просмотра ее необходимо проинициализировать, указав диапазон изменений значений позиции. Для этого следует вызвать функцию SetScrollRange:

SetScrollRange(HWND hwnd, int fnBar, int nMin, int nMax, BOOL fRedraw);

Параметр fnBar определяет тип полосы просмотра, для которой выполняется установка диапазона изменения значений позиции:

Значение Описание
SB_CTL Установка диапазона для полосы просмотра, созданной как орган управления класса "scrollbar".
SB_HORZ Установка диапазона горизонтальной полосы просмотра для окна.
SB_VERT Установка диапазона вертикальной полосы просмотра для окна.

Параметр fRedraw определяет, следует ли перерисовывать полосу просмотра для отражения изменений.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: