티스토리 뷰
DC (Device Context)
- 화면 출력에 필요한 보든 정보(선의 색상, 굵기, 폰트, 배경색 등)을 가지고 있는 구조체
- OS에서 각 윈도우에게 DC 핸들을 부여한다.
DC핸들을 얻는 방법 2가지
1. 창이 가려졌다 보여질때 새로 그려져야 할 부분일때 (WM_PAINT)
PAINTSTRUCT ps; // 다시 그려져야 하므로 실제로 출력할때 화면 메모리 영역 정보 필요
HDC hdc = BeginPaint(hWnd, &ps);
...
EndPaint(hWnd, &ps);
2. 새로 그려질 부분에 대해 신경 안씀
HDC hdc = GetDC(hWnd);
...
ReleaseDC(hWnd, hdc);
윈도우 전체 DC얻기
HDC GetWindowDC(hWnd); // 뷰(클라이언트 영역)+비클라이언트 영역(프레임윈도우, 타이틀, 메뉴, 툴바 등)
GetDC/ReleaseDC
윈도우의 클라이언트 영역에 그리기를 할 수 있으며 WM_PAINT 가 아닌 메시지에서 사용한다,
GetDC, ReleaseDC 함수에 윈도우 핸들 대신에 NULL 을 전달하면 비 클라이언트(넌 클리이언트) 영역에 그리기를 할 수 있다.
CreateDC/DeleteDC
장치명을 인자로 전달하여 다양한 장치에 그리기를 할 수 있다.
BeginPaint/EndPaint
클라이언트 영역 내의 무호화 영역에 그리기를 할 때 사용한다. 무효화 영역은 WM_PAINT 메시지와 연관되기 떄문에 이들 함수는 WMPAINT 메시지에서만 사용할 수 있다.