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。

GDI+ 将忽略对 Graphics::GetHDCGraphics::ReleaseHDC 之间的设备上下文所做的任何状态更改,并且不会反映在 GDI+ 完成的呈现中。

示例

以下函数使用 GDI+ 绘制椭圆,然后使用 GDI 绘制矩形,最后使用 GDI+ 绘制线条。 函数的一个参数是指向 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