본문 바로가기

C# & .NET

.NET WinForm 의 DeviceContext 구하기

728x90
반응형
.NET에서는 윈도우에 그리기를 할 때 GDI+ 를 사용한다.
GDI+ 에서 특정 device context에 출력하는 기능은 Graphics 클래스를 사용한다.
반면에 Visual C++ 에서는 GDI를 기본적으로 사용하며 CDC 클래스를 사용하여 그리기를 수행한다.

.NET WinForm 프로그램과 Visual C++ 프로그램간에 device context 를 주고받아야 할 필요성이 있을 경우에는 device context 핸들을 구하여 전달하면 된다.

.NET WinForm 프로그램에서 device context 핸들은 다음과 같이 구한다.
Graphics g = CreateGraphics();
IntPtr hDC = g.GetHdc();

.NET WinForm 의 device context 핸들 hDC를 전달받은 Visual C++ 프로그램에서는 다음과 같은 방법으로 CDC 객체를 생성할 수 있다.
CDC dc;
dc.Attach(hDC);
...
dc.Detach();

참고 예제 프로젝트

반응형