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
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
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 |