728x90
반응형

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)

 

---> 도형 내부만 색이 칠해져서 선으로 그어서 만든 부분은 색을 입히지 못해 아쉬웠다.

       만들다가 만듯한 느낌...

728x90
반응형

'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

+ Recent posts