Nagie's DevStory

[WIN32 API] 07. 사각형 그리기 본문

Programming/Win32API

[WIN32 API] 07. 사각형 그리기

Nagie 2023. 11. 15. 00:26
728x90

Win32 API에서 사각형을 그리고 싶다면 Rectangle()을 사용하면 되고

이 함수는 앞서 설명한 Ellipse()와 같이 Windows GDI(Graphics Device Interface) 라이브러리에 속하며

wingdi.h에 선언된 Rectangle()을 보면 다음과 같다.

 

BOOL Rectangle(
  HDC hdc,    // 디바이스 컨텍스트 핸들
  int left,   // 왼쪽 상단 모퉁이의 x 좌표
  int top,    // 왼쪽 상단 모퉁이의 y 좌표
  int right,  // 오른쪽 하단 모퉁이의 x 좌표
  int bottom  // 오른쪽 하단 모퉁이의 y 좌표
);

 

Ellipse()와 동일한 매개변수를 가지고 있으며 각 매개변수는 다음과 같은 역할을 한다.

 

인자 설명
hdc
그림을 그릴 디바이스 컨텍스트 핸들

left, top
사각형의 왼쪽 상단 모퉁이의 좌표

right, bottom
사각형의 오른쪽 하단 모퉁이의 좌표

 

다음은 좌표 200,200에서 크기 100,100을 가지는 사각형을 그리는 코드의 예시다.

 

// 사각형 그리기
Rectangle(hdc, 200, 200, 300, 300);

 

Rectangle() 역시 Ellipse()와 동일하게 좌푯값을 기재하는 부분이 직관적이지 못해 따로 래핑을 해봤다.

 

void drawRect(HDC hdc, int startX, int startY, int width, int height) {

    Rectangle(hdc, startX, startY, width + startX, height + startY);
}

 

drawRect(hdc,200,200,100,100); //좌표X, 좌표Y, 사각형의 폭, 사각형의 높이 순서로 입력

 

728x90
Comments