Метод Graphics::GetHDC (gdiplusgraphics.h)
Метод Graphics::GetHDC получает дескриптор контекста устройства, связанного с этим объектом Graphics .
Синтаксис
HDC GetHDC();
Возвращаемое значение
Тип: HDC
Этот метод возвращает дескриптор контекста устройства, связанного с данным объектом Graphics .
Комментарии
Каждый вызов метода Graphics::GetHDC объекта Graphics должен быть связан с вызовом метода Graphics::ReleaseHDC того же объекта Graphics . Не вызывайте методы объекта Graphics между вызовами Graphics::GetHDC и Graphics::ReleaseHDC. Если попытаться вызвать метод объекта Graphics между Graphics::GetHDC и Graphics::ReleaseHDC, метод завершится ошибкой и возвратит ObjectBusy.
Любые изменения состояния, внесенные в контекст устройства между Graphics::GetHDC и Graphics::ReleaseHDC , будут игнорироваться GDI+ и не будут отражены в отрисовке, выполненной GDI+.
Примеры
Следующая функция использует GDI+ для рисования эллипса, затем использует GDI для рисования прямоугольника и, наконец, использует GDI+ для рисования линии. Один параметр функции является указателем на объект GDI+ Graphics . Код вызывает метод Graphics::D rawEllipse этого объекта Graphics для рисования эллипса. Затем код вызывает метод Graphics::GetHDC , чтобы получить дескриптор контекста устройства, связанного с объектом Graphics . Код рисует прямоугольник, передавая дескриптор контекста устройства в функцию GDI Rectangle . Код вызывает метод Graphics::ReleaseHDC объекта Graphics , а затем использует объект 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 Профессиональная [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | gdiplusgraphics.h (включая Gdiplus.h) |
Библиотека | Gdiplus.lib |
DLL | Gdiplus.dll |