При создании органа управления - полосы прокрутки вручную как дочернее окно функции CreateWindow следует указать стандартный класс «scrollbar» и один из двух типов SBS_VERT(вертикальная полоса прокрутки) или SBS_HORS (горизонтальная полоса прокрутки).При обработке действий пользователя все полосы прокрутки передают функции родительского окна не сообщение WM_COMMAND, как все другие органы управления, а сообщения WM_VSCROLL или WM_HSCROLL. Сообщения от полосы просмотра в виде дочернего окна отличаются от сообщений, предаваемых полосами просмотра окна значением старшего слова параметра lParam;
Тип полосы просмотра HIWORD (lParam)
Полоса просмотра окна 0
Орган управления- полоса
просмотра в виде дочернего окна Индекс дочернего окна
Параметр wParam, содержит одну из следующих величин, определенных в файле windows.h:
Величина Действие
SB_BOTTOM Прокрутка до нижнего правого угла
SB_ENDSCROLL Прокрутка до конца
SB_LINEDOWN Прокрутка на строку вниз
SB_LINEUP Прокрутка на строку вверх
SB_PAGEDOWN Прокрутка на страницу вниз
SB_PAGEUP Прокрутка на страницу вверх
SB_THUMBPOSITION Прокрутка по абсолютной позиции.
Текущая позиция находится в
младшем байте параметра
Заметим, что полосы просмотра окна имеют постоянную (стандартную) ширину. Узнать ширину полосы просмотра можно при помощи функции GetSystemMetrics:
nWidth=GetSystemMetrics(SM_CYHSCROLL);
Определение ширины горизонтальной полосы просмотра окна:
Width=GetSystemMetrics(SM_CXVSCROLL);
Установить границы перемещения указателя полосы просмотра в виде дочернего окна вам поможет функция SetScrollRange:
SetScrollRange(hWnd,SB_STL,nMin, nMax,bRedraw);
Параметр hWnd содержит индекс дочернего окна , параметры nMin и nMax определяют границы изменения положения указателя полосы просмотра, а bRedraw определяет ,надо ли перерисовывать полосу просмотра. Если параметр bRedraw равен FALSE, то полосам просмотра не перерисовывается.
Для позиционирования указателя полосы просмотра окна предназначена функция SetScrollPos:
SetScrollPos(hWnd,SB_STL,nPos,bRedraw);
Параметр nPos функции определяет позицию, в которую устанавливается указатель.