logo search
Литература_1 / photon_old

Отсечение

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

Можно написать функцию прорисовки, так чтобы это отсечение не было нужным, но это может сделать Ваш программный код более запутанным. Например, если Вы пытаетесь писать текст, который выходит за пределы холста необработанного виджета, Вам может понадобиться прорисовать части букв. Вам также надо иметь в виду, что произойдёт, если пользователь изменит размер необработанного виджета. Намного легче использовать функцию PtClipAdd(), чтобы установить область обрезки по холсту необработанного виджета и позволить графическому драйверу ограничивать прорисовку:

PtClipArea(widget, &raw_canvas);

Перед тем как выйти из функции прорисовки, вызовите функцию PtClipRemove(), чтобы отключить область обрезки:

PtClipRemove();