본문 바로가기
MFC

CPoint, CRect, CSize, CTime, CTimeSpan

by wanna_dev 2024. 12. 30.

CPoint

CPoint() throw();
CPoint(int initX, int initY) throw();
CPoint(POINT initPt) throw();
CPoint(SIZE initSize) throw();
CPoint(LPARAM dwPoint) throw();

CPoint pt1(10, 20);
POINT pt{ 40,40 };
CPoint pt2(pt);
// ==, !=, +, -, +=, -= 등 제공.

https://learn.microsoft.com/ko-kr/cpp/atl-mfc-shared/reference/cpoint-class?view=msvc-170

 

CPoint 클래스

자세한 정보: CPoint 클래스

learn.microsoft.com

 

CRect

CRect() throw();
CRect(int l, int t, int r, int b) throw();
CRect(const RECT& srcRect) throw();
CRect(LPCRECT lpSrcRect) throw();
CRect(POINT point, SIZE size) throw();
CRect(POINT topLeft, POINT bottomRight) throw();

left, top, right, bottom을 멤버 변수로 가짐.

 

Width(), Height() 

PtInRect() 함수등이 있음.

https://learn.microsoft.com/ko-kr/cpp/atl-mfc-shared/reference/crect-class?view=msvc-170

 

CRect 클래스

자세한 정보: CRect 클래스

learn.microsoft.com

 CPoint pt1(110, 120);
POINT pt{ 140,140 };
CPoint pt2(pt);
// ==, !=, +, -, +=, -= 등 제공.

CRect rect1(0, 0, 200, 100);
CRect rect2;
rect2.SetRect(0, 0, 200, 100);

RECT rect{ 100, 100, 300, 200 };
CRect rect3(rect);
_tprintf(_T("%d %d"), rect3.Width(), rect3.Height());
            
bool res = rect3.PtInRect(pt1);
_tprintf(_T("%s"), res?_T("true"):_T("false"));

 

CSize

CSize() throw();
CSize( int initCX, int initCY) throw();
CSize( SIZE initSize) throw();
CSize( POINT initPt) throw();
CSize( DWORD dwSize) throw();

 

CTime

  CTime tm;
tm = CTime::GetCurrentTime();
CString str = tm.Format(_T("%A, %B, %d, %Y"));
_tprintf(_T("%s\n"), (LPCTSTR)str);
str.Format(_T("현재시각은 %d시 %d분 %d초 입니다."), tm.GetHour(), tm.GetMinute(), tm.GetSecond());
_tprintf(_T("%s\n"), (LPCTSTR)str);

 

CTimeSpan : 시차

CTime startTime = CTime::GetCurrentTime();
Sleep(1234);
CTime endTime = CTime::GetCurrentTime();   
CTimeSpan elapsedTime = endTime - startTime;
str.Format(_T("%d elapsed"), elapsedTime.GetTotalSeconds());
_tprintf(_T("%s\n"), (LPCTSTR)str);

CTimeSpan을 사용하면 시차를 쉽게 구할 수 있는데. sec단위로 구할 수 있다.

정밀한 연산을 원하면 QueryPerformanceCounter나, std::chrono를 사용하는 것이 적합할 것 같습니다.

'MFC' 카테고리의 다른 글

CString, _tsetlocale, Format, LoadString  (0) 2024.12.30
다른 편집기에서 열려있습니다 오류  (0) 2024.12.30