-
WM_PAINTWin API/4. GDI 2021. 4. 1. 18:53
WM_PAINT 메시지를 이용해서 직사각형을 그려보자.
직사각형을 그릴 때는 Rectangle 함수를 이용해서 그리면 된다.
운영체제는 개별 윈도우의 화면을 보관해 주지는 않지만, 대신 윈도우의 일부가 지워졌다는 사실을
프로그램으로 즉각 알리며, 그 방법은 WM_PAINT 메시지를 보내주는 것이다.WM_PAINT메시지는 "너의 작업영역이 일부 지워졌으니까 빨리 다시 그려라" 라는 의미이다.
프로그램을 실행하고 드래그로 윈도우 창을 늘렸을 때, 크기가 변경하는데
크기가 변경됨에 따라서 다시 그려줘야 한다. 그럴 경우 WM_PAINT메시지가 발생한다.화면으로 출력을 하기 위해서는 반드시 DC가 있어야 하며, DC를 얻는 방법에는 BeginPaint함수를 통해 얻을 수 있다.
DC는 주로 하나의 윈도우와 연관되는 출력 정보를 가진다.
그래서, 인수로 어떤 윈도우에 대한 DC가 필요한가를 밝혀야 한다.화면으로 출력을 하기 위해서는 반드시 DC가 있어야 하며, DC를 얻는 방법은 BeginPaint함수로 얻는다.
BeginPaint 함수의 두 번째 매개변수를 통해 무효화 영역을 얻어올 수 있다.
BeginPaint함수는 WM_PAINT메시지 루틴에서만 사용할 수 있다.
핸들을 해제할 때는 EndPaint함수를 사용한다.EndPaint 함수의 첫 번째 매개변수는 반환 받을 DC를 받을 HWND 이고
두 번째 매개변수는 무효화 영역 전달이다.
BeginPaint함수는 WM_PAINT메시지 내에서 그림 그리기 준비를 하는 좀 더 전문적인 함수이되,그 외의 메시지에서는 절대로 사용할 수 없다.
그리고 그림은 반드시 BeginPaint 함수와 EndPaint 함수 사이에서 그려져야 한다.
아래의 Rectangle 함수는 직사각형을 그리는 함수이다.
매개변수를 두 좌표씩 묶어서 설명하면, 각 각 좌측상단점과 우측하단점으로 표현된다.
아래는 BeginPaint 함수와 EndPaint 함수에 대한 설명이다.
소스 파일
'Win API > 4. GDI' 카테고리의 다른 글
활용 - 체크박스의 상태에 따라 도형 출력하기 (0) 2021.04.02 활용 - 정사각형들을 화면 크기에 맞게 배치하기 (0) 2021.04.01 DrawText - 문자열 출력 함수 (0) 2021.04.01 TextOut - 문자열 출력 함수 (0) 2021.04.01 GDI Object (0) 2021.04.01