WM_PAINT

2022. 12. 18. 20:46개인공부/Win32API

Win32API를 이용하여 프로그램 창에 사각형 그림을 그리고 이동시키는 공부를 하였다.

 

 

위의 message 값에  W_PAINT 값이 들어올때 실행을 한다.

UNIT 에 들어오는 정보의 형태 의미한다.

wParam 은 키보드 입력, lParam 은 마우스 입력을 의미한다.

switch(message) 에 WM_PAINT 가 입력되어 

case  구문이 실행된다. 

처음에 기본으로 설정되어있는 펜은 검정색에 브러쉬는 하얀색이다.

펜을 변경하기 위해서는 HPEN 이라는 구조체를 이용하면 된다

CreatePen 함수는 CreatePen 함수(wingdi.h) - Win32 apps | Microsoft Learn

를 검색하면 정보가 나오는데 win32api 의 경우에는 구현되어있는 코드를 

사용하기때문에 모든정보를 아는 것이 아닌 검색을 활용해서 프로그래밍

하는 방식인거 같다.

함수의 첫번째 인자는 펜의 종류를 선택하고, 2번째는 굵기 (pixel 단위이다.) 3번째는 색상을나타낸다.

컴퓨터 내에서 RGB  의 각각 색깔을 0~255로 나타내어 색깔을 채우는 방식으로 색을 조합하여 만든다.

CreatePen  함수의 반환타입은 HPEN이다.

 

그다음으로는 SelectObject를 이용하여 첫번째인자는 어디에 정보를 받는지와 , 2번째는 전달해줄 정보이다

SelectObject 의 반환타입은 기존의 사용하던 HPEN이므로 따로 저장해둔다.

 

Rectangle 함수는 사각형을 그려준다.

hdc 의 내에 꼭지점 4개의 값을 입력해주면 그점을 따라서 사각형을 그려준다.

그후에는 사용했던 펜을 다시 기본펜으로 되돌려주고

다 쓴펜의 메모리를 함수를 통해서 해제해준다.

wParam 에 키보드 입력을 값을 구분해주어서 

위에 만든 사각형을 이동하는 방식이다.

중간에 InvalidateRect 함수는 무효화 영역을 지정해주는 함수로 

이함수가 없으면 사각형이 움직이지 못한다.

'개인공부 > Win32API' 카테고리의 다른 글

Object  (0) 2022.12.25
KeyManager  (2) 2022.12.24
TimeManager  (0) 2022.12.23
공부 정리  (0) 2022.12.21
PeekMessage  (0) 2022.12.19