API 도형만드는 법 처음 배웠는데 아직은 뭐가 뭔지 모르겠다...
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
여기 함수 내부에 있는
case WM_PAINT:
여기 내부에 만들고 싶은 도형을 입력하면 된다!
[원 만들기]
Ellipse(HDC hdc, int left, int top, int right, int bottom);
ex) Ellipse(hdc, 100, 200, 100, 200);
적고 F5를 눌러주면 도형이 잘 나온다.
[사각형]
Rectangle(HDC hdc, int left, int top, int right, int bottom)
[선]
* 커서 포인터의 위치를 변경하는 함수(기본적으로 0,0 위치에 있음)
MoveToEx(HDC hdc, int x, int y, LPPOINT lppt)
-> 여기서 x와 y는 x축 y축을 뜻한다.
주의할 점은 y축은 일반적으로 생각하는 y축과 반대이므로 헷갈리지 않도록 주의!
* 시작부분과 연결될 위치(기존 커서 포인터의 위치에서부터 인자로받은 위치까지 선을 그려준다.)
LineTo(HDC hdc, int x, int y)
-> 여기의 x와 y도 마찬가지 이다.
==> MoveToEx만 입력하면 화면에 아무것도 안 보일 것이다. 연결될 위치가 없기 때문에..
이 원, 사각형, 선을 이용하여 그림을 그려보았다.
곡선을 표현하려면 x와 y의 값을 조금씩 바꿔주며 해야해서 꽤 번거로웠다.
여기서 색상을 입히는 것은 구글링 결과
LRESULT CALLBACK WndProc 함수 내부에
HBRUSH Brush, oBrush; <- 선언 해줘야한다.
Brush = CreateSolidBrush(RGB(242, 203, 97)); // RGB(r,g,b) 입력해서 색상 변경
oBrush = (HBRUSH)SelectObject(hdc, Brush);
(색 변경 참고 : https://metalkim.tistory.com/304)
---> 도형 내부만 색이 칠해져서 선으로 그어서 만든 부분은 색을 입히지 못해 아쉬웠다.
만들다가 만듯한 느낌...
'API > API' 카테고리의 다른 글
API - 충돌 (IntersectRect 함수) (0) | 2021.06.01 |
---|---|
API - 움직이는 객체 맞추기 (0) | 2021.05.30 |
API - 총알 발사 ( 왼, 위, 오, 아래 방향) (1) | 2021.05.30 |
GetAsyncKeyState 함수 (0) | 2021.05.29 |
API - 도형 (총알 발사) (0) | 2021.05.29 |