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+를 사용하여 선을 그립니다. 함수의 한 매개 변수는 GDI+ Graphics 개체에 대한 포인터입니다. 이 코드는 해당 Graphics 개체의 Graphics::D rawEllipse 메서드를 호출하여 타원을 그립니다. 다음으로, 코드는 Graphics::GetHDC 메서드를 호출하여 Graphics 개체와 연결된 디바이스 컨텍스트에 대한 핸들을 가져옵니다. 코드는 GDI 사각형 함수에 디바이스 컨텍스트 핸들을 전달하여 사각형을 그립니다. 이 코드는 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 포함) |
라이브러리 | Gdiplus.lib |
DLL | Gdiplus.dll |