GetDCEx 関数 (winuser.h)
GetDCEx 関数は、指定されたウィンドウのクライアント領域または画面全体のデバイス コンテキスト (DC) へのハンドルを取得します。 後続の GDI 関数で返されるハンドルを使用して、DC で描画できます。 デバイス コンテキストは不透明なデータ構造であり、その値は GDI によって内部的に使用されます。
この関数は GetDC 関数の拡張機能であり、クライアント領域でクリッピングが発生する方法と発生するかどうかについて、アプリケーションがより細かく制御できます。
構文
HDC GetDCEx(
[in] HWND hWnd,
[in] HRGN hrgnClip,
[in] DWORD flags
);
パラメーター
[in] hWnd
DC を取得するウィンドウへのハンドル。 この値が NULL の場合、 GetDCEx は 画面全体の DC を取得します。
[in] hrgnClip
DC の可視領域と組み合わせることができるクリッピング領域。 フラグの値がDCX_INTERSECTRGNまたはDCX_EXCLUDERGN場合、オペレーティング システムはリージョンの所有権を引き受け、不要になったときに自動的に削除されます。 この場合、 GetDCEx の呼び出しが成功した後、アプリケーションでリージョンを使用または削除しないでください。
[in] flags
DC の作成方法を指定します。 このパラメーターには、次の 1 つ以上の値を指定できます。
値 | 意味 |
---|---|
|
クライアントの四角形ではなく、ウィンドウの四角形に対応する DC を返します。 |
|
OWNDC または CLASSDC ウィンドウではなく、キャッシュから DC を返します。 基本的に、CS_OWNDCとCS_CLASSDCをオーバーライドします。 |
|
親ウィンドウの表示領域を使用します。 親のWS_CLIPCHILDRENおよびCS_PARENTDCスタイル ビットは無視されます。 原点は、 hWnd で識別されるウィンドウの左上隅に設定されます。 |
|
hWnd で識別されるウィンドウの上にあるすべての兄弟ウィンドウの表示領域を除外します。 |
|
hWnd で識別されるウィンドウの下にあるすべての子ウィンドウの表示領域を除外します。 |
|
このフラグは無視されます。 |
|
このウィンドウを除外する LockWindowUpdate 呼び出しが有効な場合でも描画を許可します。 追跡中の描画に使用されます。 |
|
hrgnClip によって識別されるクリッピング領域は、返される DC の可視領域から除外されます。 |
|
hrgnClip によって識別されるクリッピング領域は、返される DC の可視領域と交差します。 |
|
予約済みです。使わないでください。 |
|
予約済みです。使わないでください。 |
戻り値
関数が成功した場合、戻り値は指定されたウィンドウの DC へのハンドルです。
関数が失敗した場合は、返される値は NULL です。 hWnd パラメーターに無効な値を指定すると、関数は失敗します。
注釈
ディスプレイ DC がウィンドウ クラスに属していない限り、描画後に DC を解放するには ReleaseDC 関数を呼び出す必要があります。 また、 ReleaseDC は 、GetDCEx を呼び出したのと同じスレッドから呼び出す必要があります。 DC の数は、使用可能なメモリによってのみ制限されます。
関数は、CS_CLASSDC、CS_OWNDC、または CS_PARENTDC がクラスの登録時に WNDCLASS 構造体のスタイルとして指定された場合に、ウィンドウのクラスに属する DC へのハンドルを返します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winuser.h (Windows.h を含む) |
Library | User32.lib |
[DLL] | User32.dll |