Шаг 49.
Visual Prolog.
События от полос прокрутки, фокуса и стирание фона

    На этом шаге мы рассмотрим события от полос прокрутки, фокуса и стирание фона.

Событие от горизонтальной полосы прокрутки

   e_HScroll(ScrollCode,integer Pos)

    Это событие посылается, когда пользователь активизирует горизонтальную полосу прокрутки окна. Параметр Pos определяет позицию в полосе прокрутки.

Событие от вертикальной полосы прокрутки

   e_VScroll(ScrollCode,integer Pos)

    Это событие посылается, когда пользователь активизирует вертикальную пололосу прокрутки окна. Параметр Pos определяет позицию в полосе прокрутки.

Получение фокуса

   e_GetFocus()

    Это событие генерируется прежде, чем окно получает фокус, так чтобы пользователь не мог нажимать на кнопки или использовать любые другие элементы управления находящиеся в окне.

    Окно или диалоговое окно получает событие e_Control (_,_,_,getfocus), если получают фокус его окна редактирования или окна списка.

Потеря фокуса

   e_LoseFocus()

    Это событие генерируется, когда пользователь выбирает другое окно или приложение. Когда приходит данное событие, окно все еще имеет фокус и сохраняет его до тех пор, пока не будет выполнен ваш код.

    Окно или диалоговое окно получает событие e_Control(_,_,_, losefocus), если теряют фокус его окна редактирования или окна списка.

Стирание фона

   e_EraseBackground()

    Событие e_EraseBackground посылается, когда окно должно быть перерисовано. Обычно система управления окнами заполняет окно до перерисовки заданным по умолчанию цветом фона. Если предложение предиката обработчика для этого события выполнится успешно, то стандартное закрашивание фона произведено не будет.

    Если вы хотите получить прозрачное окно или нарисовать фон как часть обработки события e_Update, вам нужно написать предложение, обрабатывающее это событие. Чтобы ускорить процесс перерисовки и избавиться от мерцания изображения, достаточно записать:

   % Не выполнять автоматическое заполнение фона 
   my_window_event_handler(Window,e_EraseBackground(),0):-!.

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




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