CWnd::GetDCEx

CWnd ウィンドウのデバイス コンテキストのハンドルを取得します。

CDC* GetDCEx(
   CRgn* prgnClip,
   DWORD flags 
);

パラメーター

  • prgnClip
    クライアント ウィンドウの可視領域に結び付けられているクリップ領域を識別します。

  • flags
    次のいずれかの値を指定できます。

    • DCX_CACHE   OWNDCCLASSDC ウィンドウではなく、キャッシュからデバイス コンテキストを返します。 CS_OWNDC および CS_CLASSDC をオーバーライドします。

    • DCX_CLIPCHILDREN   CWnd ウィンドウの下にあるすべての子ウィンドウの可視領域を除外します。

    • DCX_CLIPSIBLINGS   CWnd ウィンドウの上にあるすべての兄弟ウィンドウの可視領域を除外します。

    • DCX_EXCLUDERGN   返されるデバイス コンテキストの可視領域から、パラメーター prgnClip で識別されるクリップ領域を除外します。

    • DCX_INTERSECTRGN   返されるデバイス コンテキストの可視領域へ、パラメーター prgnClip で識別されるクリップ領域を組み込みます。

    • DCX_LOCKWINDOWUPDATE   LockWindowUpdate 関数を使ってこのウィンドウがほかからのアクセスを排他していても、描画できるようにします。 この値はトラッキングの間の描画に使います。

    • DCX_PARENTCLIP   親ウィンドウの WS_CLIPCHILDREN スタイル ビットおよび WS_PARENTDC スタイル ビットを無視して親ウィンドウの可視領域を使います。 この値は、デバイス コンテキストの原点を CWnd ウィンドウの左上隅に設定します。

    • DCX_WINDOW   クライアント四角形ではなく、ウィンドウ四角形に相当するデバイス コンテキストを返します。

戻り値

正常終了した場合は、特定のウィンドウのデバイス コンテキストを返します。それ以外の場合は NULL を返します。

解説

このデバイス コンテキストは、その後の GDI 関数でクライアント領域に描画するために使います。

この関数は、GetDC 関数を拡張したもので、ウィンドウのデバイス コンテキストがクリップされているかどうか、およびどのようにクリップされているかについて、アプリケーションのコントロール機能を拡張します。

デバイス コンテキストがウィンドウ クラスに属していない場合は、描画後に ReleaseDC 関数を呼び出してコンテキストを解放する必要があります。 同時に利用できる共通デバイス コンテキストは最大 5 つしかないので、デバイス コンテキストを解放に失敗すると、ほかのアプリケーションからデバイス コンテキストにアクセスできなくなることがあります。

キャッシュ デバイス コンテキストを取得するには、アプリケーションで DCX_CACHE が指定される必要があります。 DCX_CACHE が指定されず、ウィンドウが CS_OWNDC でも CS_CLASSDC でもない場合、この関数は NULL を返します。

クラスが登録されたときに、WNDCLASS 構造体に CS_CLASSDCCS_OWNDC、または CS_PARENTDC のいずれかのスタイルが指定されている場合、GetDCEx 関数は特殊属性を持つデバイス コンテキストを返します。

これらの特性の詳細については、Windows SDK の WNDCLASS 構造体の説明を参照してください。

必要条件

**ヘッダー:**afxwin.h

参照

参照

CWnd クラス

階層図

CWnd::BeginPaint

CWnd::GetDC

CWnd::GetWindowDC

CWnd::ReleaseDC

GetDCEx

概念

CWnd のメンバー