ウィンドウディスプレイデバイスコンテキスト
ウィンドウ のデバイス コンテキスト を使用すると、アプリケーションは、クライアント以外の領域を含め、ウィンドウ内の任意の場所に描画できます。 ウィンドウ デバイス コンテキストは、通常、カスタムの非クライアント領域を持つウィンドウの WM_NCPAINT メッセージと WM_NCACTIVATE メッセージを処理するアプリケーションで使用されます。 ウィンドウ デバイス コンテキストの使用は、他の目的には推奨されません。
アプリケーションは、GetWindowDC を使用するか、DCX_WINDOW オプションを指定して GetDCEx関数をして、ウィンドウ デバイス コンテキストを取得できます。 この関数は、ディスプレイ デバイス コンテキスト キャッシュからウィンドウ デバイス コンテキストを取得します。 ウィンドウ デバイス コンテキストを使用するウィンドウは、ReleaseDC 関数を使用して、描画後にできるだけ早く解放する必要があります。 ウィンドウ デバイス コンテキストは常にキャッシュから取得されます。CS_OWNDCおよびCS_CLASSDCクラス スタイルは、デバイス コンテキストには影響しません。
アプリケーションがウィンドウ デバイス コンテキストを取得すると、システムはデバイスの配信元をクライアント領域の左上隅ではなくウィンドウの左上隅に設定します。 また、クライアント領域だけでなく、ウィンドウ全体を含むようにクリッピング領域も設定します。 システムは、ウィンドウ デバイス コンテキストの現在の属性値を、共通のデバイス コンテキストと同じ既定値に設定します。 アプリケーションは属性値を変更できますが、デバイス コンテキストが解放されたときにシステムは変更を保持しません。