2016. 11. 17. 22:37
* DC (Device Context)
- 출력에 필요한 모든 정보를 가지는 데이터 구조체
* DC를 얻는 방법
1. GetDC() 를 사용하여 DC를 얻고 사용 후 ReleaseDC() 로 해제
- DC는 주로 하나의 윈도우와 연관되는 출력 정보를 가진다
- 그래서 인수로 어떤 윈도우에 대한 DC가 필요한가를 알려주어야 함
- GetDC() 는 hWnd가 가리키는 윈도우에 적당한 DC를 만들어 그 핸들을 리턴
- DC도 메모리를 차지하므로 할당 후 해제 원칙이 반드시 준수
HDC hdc = GetDC(hWnd);
각종 출력
ReleaseDC(hWnd, hdc);
2. 두 번째 얻는 방법은 WM_PAINT 메시지 루틴에서만 사용 가능
- BeginPaint()로 얻으며 핸들을 해제할 때는 EndPaint() 함수 사용
- PAINTSTRUCT 형의 구조체를 지역 변수로 선언하고 다음과 같이 사용
PAINTSTRUCT paintStruct;
HDC hdc;
WM_PAINT:
hdc = BeginPaint(hWnd, &ps);
각종 출력
EndPaint(hWnd, &ps);
- PAINTSTRUCT 에는 그리기 속도를 비약적으로 향상시킬 수 있는 정보들이 있음
- 이 정보를 활용하는 방법에 대해서는 다음에 자세하게 배울 것