CWnd::GetWindowDC
更新 : 2007 年 11 月
キャプション バー、メニュー、スクロール バーも含めウィンドウ全体のディスプレイ コンテキストを取得します。
CDC* GetWindowDC( );
戻り値
関数が正常終了した場合は、指定されたウィンドウのディスプレイ コンテキストを識別するハンドルを返します。それ以外の場合は NULL を返します。
返されるポインタは、一時的なポインタです。後で使用するために保存しておくことはできません。GetWindowDC の呼び出しが正常終了するごとに、対応する ReleaseDC を呼び出す必要があります。
解説
ウィンドウのディスプレイ コンテキストの原点は、クライアント領域ではなく CWnd の左上隅なので、このコンテキストを使えば CWnd のどこにでも描画できます。
コンテキストを取得するたびに、既定の属性がディスプレイ コンテキストに設定されます。以前の属性は失われます。
GetWindowDC は、CWnd の非クライアント領域内における特別な描画効果を得るためのものです。どのようなウィンドウでも、非クライアント領域への描画は推奨しません。
Windows 関数の GetSystemMetrics を使用して、キャプション バー、メニュー、およびスクロール バーのような非クライアント領域の各部分の寸法を取得できます。
描画が完了すると、ディスプレイ コンテキストを解放するために、ReleaseDC メンバ関数を呼び出す必要があります。ディスプレイ コンテキストの解放に失敗すると、同時に開けるデバイス コンテキストの数に制限があるため、アプリケーションの描画要求に重大な影響を与えます。
必要条件
ヘッダー : afxwin.h