窗口DC可使应用程序在窗口中的任何位置绘制,包括非客户区域。窗口DC通常由处理具有自定义非客户区域的窗口的WM_NCPAINT和WM_NCACTIVATE消息的应用程序使用。使用窗口DC不推荐用于任何其他目的。
应用程序可以使用指定的DCX_WINDOW选项使用GetWindowDC或GetDCEx功能来检索窗口DC。该函数从显示DC缓存中检索一个窗口DC。使用窗口DC的窗口必须尽快使用ReleaseDC功能绘制后释放它。窗口DC始终来自缓存; CS_OWNDC和CS_CLASSDC类样式不影响DC。
当应用程序检索窗口DC时,Windows将设备原点设置为窗口的左上角,而不是客户区域的左上角。它还将裁剪区域设置为包括整个窗口,而不仅仅是客户区域。Windows将窗口DC的当前属性值设置为与普通DC相同的默认值。应用程序可以更改属性值,但是在DC释放时Windows不会保留任何更改。