C++/MFC

[MFC] CRect

powergirl 2025. 12. 25. 01:51
사각형을 표현하기 위한 기본 클래스

 

내부멤버
LONG left;
LONG top;
LONG right;
LONG bottom;

 

 

좌표로 직접 생성
CRect rect(10, 20, 100, 200);
// left=10, top=20, right=100, bottom=200

 

POINT + SIZE 로 생성
CPoint pt(10, 20);
CSize sz(100, 200);

CRect rect(pt, sz);

 

 

기존 RECT로 부터 받아 생성
// RECt 는 Win32 API
RECT rc;
GetClientRect(&rc);

CRect rect(rc);

 

 

 


 

Width, Heigjt
int w = rect.Width(); // right - left
int h = rect.Height(); // bottom - top

 

CSize
CSize size = rect.Size();
// size.cx, size.cy

 

 

 

이동
rect.OffsetRect(10, 20); // x + 10, y + 20

 

특정 위치로 이동
rect.MoveToXY(50, 50);

 

크기 확장 
rect.InflateRect(10, 10); // 사방으로 10씩 확장

 

크기 축소
rect.DeflateRect(5, 5) // 사방으로 5씩 축소

 

 

 

점 포함 여부(point)
if (rect.PtInRect(point))
{
    // point 가 rect 내부
}

 

사각형 포함 여부
CRect r1, r2;

if (r1.IntersectRect(&r1, &r2))
{
    // 겹침
}

 

 

 

 

'C++ > MFC' 카테고리의 다른 글

[MFC] ListBox  (0) 2025.12.25
[MFC] Dialog 추가하기 - DoModal  (0) 2025.12.25
[MFC] CString  (0) 2025.12.25
[MFC] WM_LBUTTONDOWN, OnLButtonDown  (0) 2025.12.25
[MFC] 클래스 마법사  (0) 2025.12.25