窗口区域

除了更新区域,每个窗口都有一个 可见区域 ,用于定义对用户可见的窗口部分。 每当窗口更改大小或移动另一个窗口时,系统都将更改窗口的可见区域,使其遮挡或公开窗口的一部分。 应用程序无法直接更改可见区域,但系统会自动使用可见区域为窗口检索到的任何显示设备上下文创建剪辑区域。

剪裁区域确定系统允许绘制的位置。 当应用程序使用 BeginPaintGetDCGetDCEx 函数检索显示设备上下文时,系统会将设备上下文的剪辑区域设置为可见区域和更新区域的交集。 应用程序可以使用 SetWindowRgnSelectClipPathSelectClipRgn 等函数更改剪辑区域,以进一步将绘图限制为更新区域的特定部分。

WS_CLIPCHILDREN和WS_CLIPSIBLINGS样式进一步指定系统如何计算窗口的可见区域。 如果窗口具有其中一种或两种样式,则可见区域将排除任何子窗口或同级窗口 (具有相同父窗口) 窗口。 因此,将始终剪裁那些以其他方式侵入这些窗口的绘图。