화면, 프린터 등의 모든 출력 장치를 제어하는 윈도우즈 핵심 모듈중 하나이다.

즉, 출력을 위한 중앙 통제 센터 정도로 생각하자.

윈도우즈 프로그램에서의 모든 출력은 GDI 를 통해서 화면과 프린터로 나가게 되어 있다.

GDI 오브젝트 (GDI Object) 란?=> 그래픽 출력에 사용되는 도구를 말하며 펜 , 브러시 , 비트맵 , 폰트 등등이 모두 GDI 오브젝트 이다.

( 사람이 그림그릴때 쓰는 연필, 붓 등을 생각하면 된다 )

GDI 오브젝트를 모아놓은 것이 DC 이며 GDI 는 현재 DC 에 선택되어 있는 GDI 오브젝트를 사용한다.

그래서 사용자는 그래픽을 그리기 전에 DC 에 적절한 오브젝트를 선택함으로써 원하는 모양과 속성으로 그래픽을 출력할 수 있다. 즉 , 원하는 색상과 모양의 오브젝트를 만들고 DC 에 선택해 놓으면 이후부터 선택된 오브젝트의 속성대로 출력된다.

GDI 오브젝트는 내부적으로 일종의 구조체이겠지만 ,그 선언문이 공개되어 있지 않으므로 우리가 이 구조체를 볼 수도 없고 , 볼 필요도 없다. DC 가 BeginPaint 나 GetDC 함수로 의해 처음 만들어졌을 때 ,디폴트로 선택된 GDI 오브젝트는 다음과 같다.

GDI 오브젝트 핸들 타입 설명 디폴트
HPEN 선을 그을 때 사용 검정 가는 실선
브러시 HBRUSH 면을 채울 때 사용 흰색
폰트 HFONT 문자 출력 글꼴 시스템 글꼴
비트맵 HBITMAP 비트맵 이미지 선택 안됨
팔레트 HPALETTE 팔레트 선택 안됨
리전 HRGN 화면상의 영역 선택 안됨

보다시피 대체로 무난한 속성으로 설정되어 있다. 그래서 DC 에 별 다른 지정을 하지 않고 , 그냥 출력하면 디폴트 속성이 적용되어 위와 같은 속성이 적용된다.