Регионы окна


В дополнение к обновляемому региону у каждого окна есть видимый регион (visible region), который определяет часть окна, видимую для пользователя. Система изменяет видимый регион окна всякий раз, когда окно изменяет размер, или всякий раз, когда другое окно перемещается при условии того, что, оно закрывает или вновь показывает часть окна. Приложения не могут изменить видимый регион непосредственно, поэтому система автоматически использует видимый регион, чтобы создать регион отсечения для любого контекста устройства (DC) отображения, найденного для окна.

Регион отсечения (clipping region) определяет, где система разрешает рисовать. Когда приложение извлекает контекст устройства (DC) отображения, используя функцию BeginPaint, GetDC или функцию GetDCEx, то система устанавливает регион отсечения для контекста устройства в пересечении видимого региона и обновляемого региона. Прикладные программы могут изменить регион отсечения при помощи использования функций таких как SetWindowRgn, SelectClipPath и SelectClipRgn, чтобы далее ограничить рисование конкретной частью области обновления.

Стили WS_CLIPCHILDREN и WS_CLIPSIBLINGS далее определяют, как система вычисляет видимый регион для окна. Если окно имеет один или оба из этих стилей, видимый регион исключает любое дочернее окно или родственные окна (окна, имеющие то же самое родительское окно). Вследствие этого, рисование, которое в других обстоятельствах вторглось без разрешения в эти окна, будет всегда обрезаться.

Назад в оглавление
На главную страницу

Hosted by uCoz