Сообщения от полосы просмотра
Если полоса просмотра была создана как орган управления, то сообщения 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 определяет, следует ли перерисовывать полосу просмотра для отражения изменений.






