Шаг 38.
Visual Prolog.
Доступ к клиентской области и область отсечения

    На этом шаге мы рассмотрим доступ к клиентской области и область отсечения.

    Функция win_GetClientRect возвращает координаты клиентской области окна. win_GetClientRect заполняет структуру RCT координатами левого верхнего и нижнего правого углов клиентской области, но координаты относятся к самой клиентской области (клиентские координаты). Это означает, что координаты левого верхнего угла клиентской области - всегда (0,0), а координаты нижнего правого угла - ширина и высота клиентской области.

   ClientRCT=win_GetClientRect(Window)

Область отсечения

    По умолчанию рисование происходит в пределах прямоугольной области, и все, что попадает за ее границы, отсекается (не выводится на экран), но существует возможность явно установить область отсечения вызовом предиката win_SetClip:

   my_event_handler(Window,e_Update(_Rct),0):-!,
      win_SetClip(Window,rct(60,60,100,100)), 
      draw_Text(Window,70,70,"Привет, Мир!").

    Весь будущий вывод в данное окно будет усекаться к указанной прямоугольной области.

    Чтобы не допустить отсечения, устанавливают усечение к области, по крайней мере, такого же размера, как клиентская область.

    Текущая область отсечения для любого окна может быть получена при помощи следующего предиката:

   ClipUpRct=win_GetClip(Window)

    В этом случае координаты области являются координатами клиентской области окна.

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




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