パラメータ
hWnd
デバイスコンテキストの取得対象となるウィンドウのハンドルを指定する。
NULL を指定すると、GetDCEx は画面全体を表すデバイスコンテキストを取得する。
Windows 98 と Windows 2000:NULL を指定すると、GetDC
はプライマリモニタのデバイスコンテキストを取得する。
他のモニタのデバイスコンテキストを取得するには、EnumDisplayMonitors と CreateDC の各関数を使う。
hrgnClip
クリッピングリージョンを指定する。このクリッピングリージョンを、デバイスコンテキストの可視リージョンと組み合わせることもできる。
flags パラメータで DCX_INTERSECTRGN または DCX_EXCLUDERGN
を指定した場合、オペレーティングシステムはこのクリッピングリ
ージョンの所有権を取得し、必要がなくなった段階で自動的に削除する。
この場合、GetDCEx の呼び出しに成功した後は、アプリケーションはこのクリッピングリージョンを使うべきではなく、削除すべきでもない。
flags
デバイスコンテキストの作成方法を指定する。次の値の任意の組み合わせを指定する。
値
|
意味
|
DCX_WINDOW |
クライアント領域内の長方形ではなく、ウィンドウ全体の長方形を表すデバイスコンテキストを取得する。 |
DCX_CACHE |
OWNDC や CLASSDC に対応するウィンドウからではなく、キャッシュからデバイスコンテキスト、 |
|
つまりオペレーティングシステムが所有している内部のデバイスコンテキスト)を取得する。 |
|
この値を指定すると、事実上、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 パラメータで指定されたクリッピングリージョンを除 |
|
外する。 |
DCX_INTERSECTRGN |
デバイスコンテキストの可視リージョンと、hrgnClip パラメータで指定されたクリッピングリージョンの共通 |
|
部分を、新しいクリッピングリージョンとする。 |
DCX_VALIDATE |
DCX_INTERSECTUPDATE と DCX_VALIDATE の両方を指定すると、デバイスコンテキストが完 |
|
全に有効になる。これらの値を指定してこの関数を呼び出すと、BeginPaint 関数を呼び出したのと同 |
|
じ結果になる。 |
戻り値
関数が成功すると、指定されたウィンドウに関連するデバイスコンテキストのハンドルが返る。
関数が失敗すると、NULL が返る。hWnd パラメータで無効な値を指定すると、関数は失敗する。
Windows NT/2000:拡張エラー情報を取得するには、GetLastError 関数を使う。
解説
デバイスコンテキストが不要になったら、ReleaseDC 関数を呼び出して解放する。
ただし、ウィンドウクラスに属しているディスプレイデバイスコンテキストは、解放する必要がない。
一度に使える共通デバイスコンテキストは最大 5 つなので、共通デバイスコンテキストを解放しないと、他のアプリケーションが共通デバイス
コンテキストにアクセスできなくなることがある。
ウィンドウクラスを登録したときに、WNDCLASS 構造体で
CS_CLASSDC、CS_OWNDC、CS_PARENTDC のいずれかのスタイルを指
定していた場合、この関数は、ウィンドウクラスに所属するデバイスコンテキストのハンドルを返す。 |