Шаг 67.
Visual Prolog.
Полосы прокрутки

    На этом шаге мы рассмотрим полосы прокрутки.

    Установив типы окна 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.

Таблица 1. Коды полосы прокрутки
Код Значение
sc_LineUp Строка вверх
sc_LineDown Строка вниз
sc_PageUp Предыдущая страница
sc_PageDown Следующая страница
sc_Top В начало
sc_Bottom В конец
sc_Thumb Изменение положения движка
sc_ThumbTrack Перемещение движка

    На следующем шаге мы рассмотрим работу с полосами прокрутки.




Предыдущий шаг Содержание Следующий шаг