На этом шаге мы рассмотрим полосы прокрутки.
Установив типы окна wc_HScroll и wc_VScroll, вы можете создать горизонтальную и вертикальную полосы прокрутки в любом месте окна.
Полосы прокрутки могут быть определены как часть поля редактирования и списка. В этих случаях операция прокрутки выполняется элементом управления и уведомления родительскому диалоговому окну не посылаются.
События уведомления от полос прокрутки могут быть трех типов: полосы прокрутки как элементы управления посылают события e_Control, в то время как полосы прокрутки окна посылают события e_HScroll и e_VScroll.
Предложения обработчика событий для этих трех типов выглядят следующим образом:
ehandler(Window,e_Control(ResId,CtrlType,CtrlWindow,scroll(ScrCode,Pos)),0):- ehandler(Window,e_VScroll(ScrCode,Pos),0):- % Активизирована вертикальная полоса прокрутки ehandler(Window,e_HScroll(ScrCode,Pos),0):- % Активизирована горизонтальная полоса прокрутки
ScrCode принадлежит домену scrollCode и определяет действие, произведенное с полосой прокрутки (смещение на строку вверх, на страницу вниз, в конец и т. д.). Значения этого параметра перечислены в таблице 1.
Одиночное нажатие кнопки мыши на полосе прокрутки выше или ниже движка сгенерирует событие sc_PageUp или sc_PageDown соответственно. Задачей программиста является определение того, что эти события должны обозначать в контексте приложения, и обеспечение выполнения всех изменений в окне.
Поле Pos является важным в случае перемещения пользователем движка полосы прокрутки. Это значение определяет позицию движка относительно полосы прокрутки. Во время перемещения движка приложение будет посылать события sc_ThumbTrack, и после того как пользователь отпустит движок, пошлет событие sc_Thumb.
Код | Значение |
---|---|
sc_LineUp | Строка вверх |
sc_LineDown | Строка вниз |
sc_PageUp | Предыдущая страница |
sc_PageDown | Следующая страница |
sc_Top | В начало |
sc_Bottom | В конец |
sc_Thumb | Изменение положения движка |
sc_ThumbTrack | Перемещение движка |
На следующем шаге мы рассмотрим работу с полосами прокрутки.