GDI란, Graphic Device Interface의 약어이다.

 그래픽 장치로 사용자에게 그래픽 형태의 인터페이스를 제공하는 장치가 GDI이다.

 GUI를 만들기 위해서 디바이스에게 적용하는 것이 GDI라고 이해하는게 편할 것 같다.(그래서 GDI32 Library을 사용하는 것이다.)


 옛날에는 그래픽처리 방법으로 출력되는 것이 아닌, 텍스트처리로 출력되었다.

 이것은 TUI형태로 볼 수 있으며, 텍스트는 점자 프린트등으로 출력하였다.


 TUI로 구성된 프로그램이나 Shell을 사용해보면 알겠지만, 사용자가 해당 프로그램을 사용하기 어렵다.


 대표적으로 CMD, DOS을 보면 알 수 있다. 요즘에 CMD를 사용하는 사람이 별로 없을 것이다. 이유는 '귀찮아서' 일 것이다. '어려워서'라고 생각할 것 같지만, 사실 기본적인 명령어가 그렇게 많지 않다.(약 50개 이내) 하지만, 사람들은 50개 이내에 있는 또 다른 명령어들을 공부하기 귀찮아서 쓰지 않는다.


 DOS일때는 책을 펼치면서 이것 저것 작성을 해야되고, 대충 처리하고 싶은 일 또한 복잡한 작업을 해야된다.


 그래서 그것을 편하게 만들기 위해서 나온 OS. 그것이 윈도우/맥/리눅스 들이였다.(GUI가 적용된 OS들이다. GUI 형태의 OS는 먼저 리눅스에서 나왔고, 그것이 업그레이드 되서 맥, 윈도우 순으로 나왔다.)


 GDI을 사용하기 위해서는 DC(Device Context)에 대해서 가지고 와야한다.

 DC란, 디바이스에서 윈도우를 띄우기 위해서 사용하는 모든 정보를 가지고 있는 구조체이다.

 DC를 변경해서 특정 정보, 윈도우의 속성, 윈도우의 그림을 그리는 등을 할 수 있다.


 DC의 핸들러를 얻는 방법은 다음과 같다.

 hdc = BeginPaint(hWnd, &ps);

 EndPaint(hWnd, &ps);


 여기서 BeginPaint는 DC 핸들을 얻는데 사용한다. ps는 PAINTSTRUCT의 구조체로 그리기 위한 정보를 가지고 있는 구조체로 선의 굵기, 선의 색상등을 설정해서 사용할 수 도 있다.


 EndPaint라는 것은 hdc를 사용하는 것을 종료시키는 것이다.

Posted by JunkMam
,