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 つ以上の値を指定できます。

意味
DCX_WINDOW
クライアントの四角形ではなく、ウィンドウの四角形に対応する DC を返します。
DCX_CACHE
OWNDC または CLASSDC ウィンドウではなく、キャッシュから DC を返します。 基本的に、CS_OWNDCとCS_CLASSDCをオーバーライドします。
DCX_PARENTCLIP
親ウィンドウの表示領域を使用します。 親のWS_CLIPCHILDRENおよびCS_PARENTDCスタイル ビットは無視されます。 原点は、 hWnd で識別されるウィンドウの左上隅に設定されます。
DCX_CLIPSIBLINGS
hWnd で識別されるウィンドウの上にあるすべての兄弟ウィンドウの表示領域を除外します。
DCX_CLIPCHILDREN
hWnd で識別されるウィンドウの下にあるすべての子ウィンドウの表示領域を除外します。
DCX_NORESETATTRS
このフラグは無視されます。
DCX_LOCKWINDOWUPDATE
このウィンドウを除外する LockWindowUpdate 呼び出しが有効な場合でも描画を許可します。 追跡中の描画に使用されます。
DCX_EXCLUDERGN
hrgnClip によって識別されるクリッピング領域は、返される DC の可視領域から除外されます。
DCX_INTERSECTRGN
hrgnClip によって識別されるクリッピング領域は、返される DC の可視領域と交差します。
DCX_INTERSECTUPDATE
予約済みです。使わないでください。
DCX_VALIDATE
予約済みです。使わないでください。

戻り値

関数が成功した場合、戻り値は指定されたウィンドウの 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

こちらもご覧ください

BeginPaint

デバイス コンテキスト関数

デバイス コンテキストの概要

GetWindowDC

Releasedc

WNDCLASS