<DC>

[1]

윈도우즈는, 세 가지 동적 연결 라이브러리로 구성되어있는데,

KERNEL : 메모리를 관리하고 프로그램을 실행시킴.

USER : 유저인터페이스와 윈도우를 관리

GDI : 화면 처리와 그래픽을 담당

위 3가지 중에서도 화면처리와 그래픽을 담당하는 라이브러리가 가장 중요하다.

*DC 는 (Device Context)로, 출력에 필요한 모든 정보를 가지는 데이터 구조체이고, GDI모듈에 의해 관리된다.

DC구조체 자체에 출력에 필요한 대부분의 정보가 담겨있기 때문에, 앞으로의 출력 관련해서는 인자로 [HDC hDC] 를 쓰고 보자.

또, 현재 상황에서 어떤 영역이 출력이 허가된 영역인가를 확인하고 허가된 영역에만 출력 해주는 역할도 바로 DC이다.

[2] DC를 얻어오는 방법

  1. GetDC함수를 사용하고, 사용 후, ReleaseDC()로 해제하는 방법.

DC도 메모리를 차지하므로, 할당 후에 해제 원칙이 있다.

  1. WM_PAINT 메시지 루틴에서 사용이 가능한데, BeginPaint함수로 DC핸들을 얻어온다. 핸들 해제는 EndPaint함수로.

WndProc 선두에서, PAINTSTRUCT형의 구조체를 지역변수로 선언하고, BeginPaint함수를 호출한 뒤, 리턴 값을 hdc라는 변수에 대입받아서 GDI함수에 사용하고, EndPaint로 그리기를 종료한다.

문자열,그래픽 출력등에 항상 hdc부터 첫 인자로 박고보자.