GetWindowDC

https://msdn.microsoft.com/ja-jp/library/cc428944.aspx https://msdn.microsoft.com/ja-jp/library/cc429812.aspx https://msdn.microsoft.com/ja-jp/library/cc429812.aspx

タイトルバー、メニュー、スクロールバーを含む、ウィンドウ全体のデバイスコンテキスト(DC)を取得します。このデバイスコンテキストを使うと、ウィンドウ内の任意の位置に描画できます。デバイスコンテキストの原点は、クライアント領域の左上隅ではなく、ウィンドウの左上隅にあるからです。

GetWindowDC は、デバイスコンテキストを取得するたびに、既定の属性をウィンドウのデバイスコンテキストへ割り当てます。それ以前の属性は失われます。

HDC GetWindowDC(
  HWND hWnd   // ウィンドウのハンドル
);

パラメータ

hWnd
デバイスコンテキストを取得したいウィンドウのハンドルを指定します。NULL を指定すると、GetWindowDC は画面全体のデバイスコンテキストを取得します。

Windows 98/Windows 2000:このパラメータに NULL を指定すると、GetWindowDC はプライマリモニタのデバイスコンテキストを取得します。他のモニタのデバイスコンテキストを取得するには、EnumDisplayMonitorsCreateDC の各関数を使ってください。

戻り値

関数が成功すると、指定されたウィンドウのデバイスコンテキストのハンドルが返ります。

関数が失敗すると、NULL が返ります。このことは、エラーが発生したか、hWnd パラメータが無効だったことを意味します。

Windows NT/2000:拡張エラー情報を取得するには、 関数を使います。

解説

GetWindowDC は、ウィンドウの非クライアント領域内で特別な描画効果を表現することを意図しています。通常は、非クライアント領域への描画は推奨されていません。

関数を使うと、非クライアント領域のさまざまな部分(タイトルバー、メニュー、スクロールバーなど)のサイズを取得できます。

GetDC 関数を使うと、画面全体のデバイスコンテキストを取得できます。

描画が完了した後で、ReleaseDC 関数を呼び出してデバイスコンテキストを解放しなければなりません。ウィンドウのデバイスコンテキストを解放しないと、アプリケーションが描画を要求する際に深刻な影響が発生します。

対応情報

Windows NT/2000:Windows NT 3.1 以降
Windows 95/98:Windows 95 以降
ヘッダー:Winuser.h 内で宣言、Windows.h をインクルード
インポートライブラリ:User32.lib を使用

参照

BeginPaint, GetDC, , ReleaseDC

表示: