窗口显示设备上下文

使用窗口设备上下文,应用程序可以绘制窗口中的任意位置,包括非工作区。 窗口设备上下文通常由处理具有自定义非工作区的 窗口WM_NCPAINTWM_NCACTIVATE 消息的应用程序使用。 不建议将窗口设备上下文用于任何其他目的。

应用程序可以使用指定了 DCX_WINDOW 选项的 GetWindowDCGetDCEx 函数来检索窗口设备上下文。 函数从显示设备上下文缓存中检索窗口设备上下文。 使用窗口设备上下文的窗口必须在使用 ReleaseDC 函数绘制后尽快释放它。 窗口设备上下文始终来自缓存;CS_OWNDC和CS_CLASSDC类样式不会影响设备上下文。

当应用程序检索窗口设备上下文时,系统会将设备原点设置为窗口的左上角,而不是工作区的左上角。 它还将剪辑区域设置为包含整个窗口,而不仅仅是工作区。 系统将窗口设备上下文的当前属性值设置为与通用设备上下文相同的默认值。 应用程序可以更改属性值,但在释放设备上下文时,系统不会保留任何更改。