관리 메뉴

드럼치는 프로그래머

[API/MFC] GDI와 DC 본문

★─Programing/☆─API | MFC

[API/MFC] GDI와 DC

드럼치는한동이 2008. 5. 16. 00:03
GDI(Graphic Device Interface)는 선 그리기, 컬러 관리와 같은 그래픽 함수들을 구현하는 일을 담당하는 윈도우즈의
구성요소로 디스플레이, 프린터, 기타 장치에 대한 그래픽 출력을 위하여 응용 프로그램이 사용할 수 있는 함수와 그에
관련된 구조를 제공한다. 이를 이용하여 직선, 곡선, 다각형, 텍스트, 비트맵(bitmap) 이미지를 구현할 수 있다.
GDI와 관련된 파일은 윈도우즈의 시스템 폴더 밑에 있는 "GDI32.DLL"파일이다. GDI32.DLL에는 GDI관련 함수들과 객체들
이 정의되어 있다. 다음은 GDI함수를 이용하여 출력하는 과정이다.

GDI32.DLL -> 디바이스 드라이버 -> 프린터, 화면 등

  윈도우즈는 잘 알고 있는 것처럼 매우 강력한 그래픽 기능을 제공한다. 화면 출력하는 방법을 아주 세세한 부분까지
프로그래머가 제어할 수 있다. 선이나 글자를 하나 출력하더라도 색깔, 두께, 모양, 위치 등 그것을 어떻게 출력할 것
인가에 대한 수많은 옵션을 설정할 수 있다. 세세하게 제어할 수 있는 장점이 있지만 모든 옵션을 일일이 설정해야하
는 번거로움이 따르게 된다.

  그래서 등장한 개념이 바로 DC(Device Context)이다. DC는 그래픽과 관련된 모든 옵션을 모아놓은 구조체이다. 그냥
간단히 출력하고자 하면 디폴트로 설정된 DC를 이용하여 바로 출력을 하면 되고, 보다 세밀한 출력을 하고 싶은 경우
에만 관련 옵션을 변경한 수에 출력을 한다.

  그래서 윈도우즈에서는 출력장치에 무엇인가를 출력하기 위해서는 반드시 DC가 필요하다. 보통 해당 DC핸들을 얻은
후 출력을 한다. 화면에 출력을 하려면 화면에 대한 DC핸들을 얻어야 하며, 프린터로 출력하려면 프린터 DC핸들을 얻
어야 한다. 또한 한 화면에서도 윈도우마다 DC를 가지고 있다는 사실을 명심해야 한다. DC핸들은 출력대상을 나타내는
구분 번호라고 생각하면 쉽다. 모든 GDI함수들은 첫 번째 인자로 DC핸들을 필요로 한다.
  DC에 설정되어 있는 옵션들은 다음과 같이 분류할 수 있다.

선그리기(펜) 선을 그리거나 영역의 경계선을 그릴 때 사용하며 선의 색, 두께, 형태 등을 지정한다.
디폴트는 검은색 1픽셀 실선이다.
영역 채우기(브러시) 어떤 영역의 내부를 채울 때 사용하며 채우기 색, 채우기 패턴 등을 지정한다. 디폴트는
흰색이다.
글꼴(폰트) 문자를 출력할 때 시용하며 색, 모양, 크기 등을 지정한다. 디폴트는 시스템 폰트이다.
팔레트 화면에 출력할 수 있는 색에 제한을 받은경우, 실제로 화면에 출력할 색의 수 등을 설정
한다.
리전 임의의 도형을 그리는 것과 관련된 옵션을 설정한다.
비트맵 비트맴 그림 파일에 관한 옵션이다.

  윈도우즈에서 제공하는 DC에는 화면출력을 위한 디스플레이 DC, 프린터나 플로터 출력을 위한 프린트 DC, 비트맵
출력을 위한 메모리 DC, 디바이스 정보를 얻기 위한 정보 DC 등 4가지 있다. DC는 개념을 잡기 가장 어려운 용어 중
에 하나로 MSDN의 DC에 대한 설명을 참초해보기 바란다.

[출처] GDI와 DC|작성자 곤이

Comments