2. DC(Device Context)와 CDC
2024. 4. 17. 14:28ㆍ[C++]/MFC 프로그래밍 기초
DC와 CDC의 정의
🍃 Windows는 세 가지 동적 연결 라이브러리로 구성된다.
- 메모리와 프로그램을 관리하는 Kernel 영역
- User Interface와 Window를 관리하는 User 영역
- 화면 처리와 그래픽을 담당하는 GDI - (DC와 CDC 부분)
🍃 DC(Device Context)는?
- GDI는 Windows 운영 체제에서 화면에 접근하는 것을 담당하는데, 그래픽 출력을 관리하기 위한 추상적인 개념이 DC이다.
- DC에 저장되어 있는 객체들을 사용해 형식에 맞는 선언을 해줘야 한다. (화면, 프린터, 메모리 등의 출력 장치에 대한 정보를 가지고 있다.
- DC는 그래픽 요소를 생성하고 제어하는 데 사용된다. 예를 들어, 선을 그리거나 사각형을 채우는 등의 그래픽 작업을 수행할 수 있다.
🍃 CDC란?
- Windows의 DC를 MFC에서 추상화한 클래스
- CDC는 MFC(Microsoft Foundation Class) 프레임워크에서 사용되는 클래스로, Windows의 DC를 쉽게 다룰 수 있도록 클래스화한 것이다.
- CDC는 Windows의 DC와 상호작용하여 그래픽 작업을 수행하는 클래스이다.
- CDC 클래스는 DC를 캡슐화하여 그래픽 출력을 보다 쉽게 처리할 수 있도록 도와준다.
- CDC 객체를 사용하여 그래픽 작업을 수행하고, 펜, 브러시, 글꼴 등의 속성을 설정할 수 있다.
요약
DC는 Windows에서 그래픽 출력을 관리하는 개념이고, CDC는 MFC에서 DC를 쉽게 다룰 수 있도록 만들어진 클래스이다.
DC에 대한 클래스 및 파생 클래스
🍃 CDC Class
- DC 에 대한 기초 클래스로 화면이나 프린터 출력에 관계된 대부분의 멤버 함수를 포함한다.
- CDC 클래스를 직접 사용하여 화면, 메모리, 프린터 등의 다양한 DC를 다룰 수 있다.
- 출력할 수 있는 영역에 따라 파생클래스가 있다.
🍃 CWindowDC
- 윈도우 전체 영역에 그래픽을 출력하기 위한 DC를 다루는 클래스
- 윈도우의 클라이언트 영역과 프레임을 포함한 전체 영역에 그래픽을 출력할 때 사용된다.
- 캡션바, 메뉴바, 상태바 등 Non Client영역을 포함한 전체 윈도우를 표시하는 DC를 관리한다.
🍃 CClientDC
- 윈도우의 클라이언트 영역에 그래픽을 출력하기 위한 DC를 다루는 클래스
- 주로 윈도우의 클라이언트 영역에 그래픽을 그릴 때 사용된다.
- Window영역의 캡션바 메뉴바 상태바 등을 제외한 클라이언트 영역만을 관리하는 DC를 뜻한다.
🍃 CPaintDC
- 윈도우의 클라이언트 영역을 그리기 위해 윈도우 프로시저에서 BeginPaint와 EndPaint 함수 사이에서 사용되는 DC를 다루는 클래스
- 주로 WM_PAINT 메시지가 발생했을때 다시 그려져야 할 영역에 대한 DC를 관리한다.
🍃 CMemoryDC:
- 메모리에 그래픽을 그리기 위한 DC를 다루는 클래스.
- 화면이나 프린터에 직접 그리지 않고, 메모리에 임시로 그래픽을 그릴 때 사용된다.
🍃 CPrinterDC:
- 프린터에 그래픽을 출력하기 위한 DC를 다루는 클래스
- 프린터로 출력할 때 사용된다.
반응형
'[C++] > MFC 프로그래밍 기초' 카테고리의 다른 글
[MFC] 2024/04/22 Thread 이용한 간단한 시계 (0) | 2024.06.11 |
---|---|
5. CCriticalSection 클래스 (0) | 2024.04.17 |
4. CString 클래스와 CTime 클래스 (0) | 2024.04.17 |
3. CWinThread와 AfxBeginThread (1) | 2024.04.17 |
1. MFC의 구성 및 기본 클래스 (0) | 2024.04.17 |