티스토리 뷰

프로그래밍/API

DC

에어버스 2016. 4. 23. 23:27

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 메시지에서만 사용할 수 있다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31