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