次の方法で共有


Graphics::GetHDC メソッド (gdiplusgraphics.h)

Graphics::GetHDC メソッドは、この Graphics オブジェクトに関連付けられているデバイス コンテキストへのハンドルを取得します。

構文

HDC GetHDC();

戻り値

種類: HDC

このメソッドは、この Graphics オブジェクトに関連付けられているデバイス コンテキストへのハンドルを返します。

解説

Graphics オブジェクトの Graphics::GetHDC メソッドの各呼び出しは、同じGraphics オブジェクトの Graphics::ReleaseHDC メソッドの呼び出しとペアにする必要があります。 Graphics::GetHDC と Graphics::ReleaseHDC の呼び出しの間に Graphics オブジェクトのメソッドを呼び出さないでください。 Graphics::GetHDC と Graphics::ReleaseHDC の間で Graphics オブジェクトのメソッドを呼び出そうとすると、メソッドは失敗し、ObjectBusy を返します。

Graphics::GetHDC と Graphics::ReleaseHDC の間でデバイス コンテキストに加えた状態の変更は GDI+ によって無視され、GDI+ によるレンダリングには反映されません。

次の関数では、GDI+ を使用して楕円を描画し、GDI を使用して四角形を描画し、最後に GDI+ を使用して線を描画します。 関数の 1 つのパラメーターは、GDI+ Graphics オブジェクトへのポインターです。 このコードは、その Graphics オブジェクトの Graphics::D rawEllipse メソッドを呼び出して、楕円を描画します。 次に、Graphics ::GetHDC メソッドを呼び出して 、Graphics オブジェクトに関連付けられているデバイス コンテキストへのハンドルを取得します。 このコードでは、デバイス コンテキスト ハンドルを GDI Rectangle 関数に渡して 四角形 を描画します。 このコードでは、Graphics オブジェクトの Graphics::ReleaseHDC メソッドを呼び出し、Graphics オブジェクトを使用して線を描画します。

VOID Example_GetReleaseHDC(Graphics* g)
{
   Pen pen(Color(255, 0, 0, 255));
   g->DrawEllipse(&pen, 10, 10, 100, 50);  // GDI+
   
   HDC hdc = g->GetHDC();
   
      // Make GDI calls, but don't call any methods
      // on g until after the call to ReleaseHDC.
      Rectangle(hdc, 120, 10, 220, 60);  // GDI  
   g->ReleaseHDC(hdc);
   
   // Ok to call methods on g again.
   g->DrawLine(&pen, 240, 10, 340, 60);  
}

要件

   
サポートされている最小のクライアント Windows XP、Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー gdiplusgraphics.h (Gdiplus.h を含む)
Library Gdiplus.lib
[DLL] Gdiplus.dll

関連項目

プログラミング モデルの変更点

FromHDC メソッド

グラフィックス

グラフィックス コンストラクター

Graphics::ReleaseHDC