화면에 선을 그리는 기능은 다음과 같이 WndProc 함수 내부에서 진행한다.
화면에 선을 그리기 위해서는 어느 위치에서 어느 방향으로 그릴지 알아야한다.
그래서 WndProc 함수에 RECT라는 변수를 만들어준다.
변수는 정적 변수로 만들어 준다.
이유는 지역 변수로 만들어주면 변수가 Stack 영역에 할당이 되어
해당 함수가 종료될 시 변경 한 값이 초기화가 진행되기 때문이다.
RECT란?
-> 상하좌우 방향이 정의되어 있는 구조체이다.
WndProc 함수에 message 조건이 들어가 있는 switch 문을 볼 수 있다.
그 안에 있는 WM_PAINT 부분을 보자.
안에 있는 PAINTSTRUCT와 HDC는 기본적으로 포함되어 있다.(기본 그리기 도구)
그림을 그릴 수 있는 함수는 여러가지가 있다.
그 중에서 몇가지만 알아보자.
##1. MoveToEx()
커서의 위치를 변경시킨다.
##2. LineTo()
기존 커서의 위치부터 넘겨주는 위치까지 선을 그린다.
##3. Rectangle()
사각형을 그려주는 함수
##4. Ellipse()
원을 그려주는 함수
그려진 그림 움직이게 하기
그림을 움직이게 하려면 먼저 해당 방향의 버튼이 눌렸다는 메시지를 알려줘야한다.
case에 WM_KEYDOWN을 추가하여 키가 눌렸다는 것을 알려주고,
다시 switch문으로 눌려진 키는 어떤 키인지 알려준다.
VK_LEFT = 왼쪽
VK_RIGHT = 오른쪽
VK_UP = 위
VK_DOWN = 아래
그리고 자신이 원하는 방향으로 얼마만큼 이동할건지 값을 + 또는 - 를 해주면 된다.
위의 예를 들어보면 left의 값과 right의 값이 같이 바뀌는 것을 볼 수 있다.
이유는 left의 값만 이동시킬 경우 left 측에 그려진 선만 이동하기 때문에
다음과 같이 한쪽 부분만 늘려지거나 찌그러지는 현상이 발생한다.
left -
left +
'Programming > Windows APi' 카테고리의 다른 글
Windows API_WinMain (0) | 2020.10.25 |
---|---|
Windows API_유니코드 (0) | 2020.10.25 |
Windows API_핸들(handle)에 대한 이해 (0) | 2020.10.25 |
Windows API_윈도우즈 프로그래밍에서 주로 사용되는 접두어 (0) | 2020.10.25 |
Windows API_개론 (0) | 2020.10.09 |