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::GetHDC 和 Graphics::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 |