Win API/4. GDI
-
GDI ObjectWin API/4. GDI 2021. 4. 1. 19:43
GDI오브젝트에는 펜, 브러시, 폰트, 비트맵, 팔레트, 리전이 있다. GDI오브젝트는 모두 핸들로 관리되므로, 우리는 다만 GDI 오브젝트를 생성하는 함수를 부르고, 이 함수가 리턴하는 핸들을 받아서 사용하기만 하면 된다. GDI오브젝트를 만들 때 핸들을 발급받으며, 선택하거나 삭제할 때는 이 핸들만 가지고 GDI오브젝트를 사용한다. GDI오브젝트란 그래픽 출력에 사용되는 도구를 뜻함. 선을 그을 때는 펜으로 그리며, 면은 브러시로 채우고 문자열을 출력할 때는 폰트를 사용한다. GDI오브젝트를 모아 놓은 것이 DC이며 GDI는 현재 DC에 선택되어 있는 GDI 오브젝트를 사용한다. 그래서 사용자는 그래픽을 그리기 전에 DC에 적절한 오브젝트를 선택함으로써 원하는 모양과 속성으로 그래픽을 출력할 수 있다..
-
WM_PAINTWin API/4. GDI 2021. 4. 1. 18:53
WM_PAINT 메시지를 이용해서 직사각형을 그려보자. 직사각형을 그릴 때는 Rectangle 함수를 이용해서 그리면 된다. 운영체제는 개별 윈도우의 화면을 보관해 주지는 않지만, 대신 윈도우의 일부가 지워졌다는 사실을 프로그램으로 즉각 알리며, 그 방법은 WM_PAINT 메시지를 보내주는 것이다. WM_PAINT메시지는 "너의 작업영역이 일부 지워졌으니까 빨리 다시 그려라" 라는 의미이다. 프로그램을 실행하고 드래그로 윈도우 창을 늘렸을 때, 크기가 변경하는데 크기가 변경됨에 따라서 다시 그려줘야 한다. 그럴 경우 WM_PAINT메시지가 발생한다. 화면으로 출력을 하기 위해서는 반드시 DC가 있어야 하며, DC를 얻는 방법에는 BeginPaint함수를 통해 얻을 수 있다. DC는 주로 하나의 윈도우와 ..