Поделиться через


Регионы окон

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

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

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