[MFC] Dialog 크기 얻기 (Rect)

빵욱·2024년 2월 29일

다이얼로그를 사용할 때 크기를 얻는 방법.

CWnd 클래스의 GetWindowRect 함수나 GetClientRect 함수가 있다.

( CWnd 클래스는 모든 윈도우와 다이얼로그의 기본 클래스 )

GetWindowRect 함수는 다이얼로그의 전체 크기를 스크린 좌표로 반환하고,

GetClientRect 함수는 클라이언트 영역(윈도우의 경계, 타이틀 바, 스크롤 바 등을 제외한 내부 영역)의 크기를 클라이언트 좌표로 반환.

GetWindowRect 사용.

CRect rect;
GetWindowRect(&rect); // rect에는 다이얼로그의 전체 크기와 위치 정보가 저장됩니다.
int width = rect.Width();
int height = rect.Height();

GetWindowRect는 윈도우의 위치와 크기를 스크린 좌표계로 반환한다.
이는 다이얼로그가 화면 상에서 어디에 위치하고 있는지를 포함한 정보.

GetClientRect 사용

CRect rect;
GetClientRect(&rect); // rect에는 다이얼로그의 클라이언트 영역의 크기 정보가 저장됩니다.
int width = rect.Width();
int height = rect.Height();

GetClientRect는 다이얼로그의 내부 영역(클라이언트 영역)의 크기를 반환한다. 이 크기 정보는 다이얼로그 내부에 배치할 컨트롤들을 정렬할 때 유용하게 사용

참고
  • GetWindowRect로 얻은 좌표는 스크린 좌표계이므로, 다이얼로그 내에서 상대적인 위치를 계산하려면 이를 클라이언트 좌표계로 변환하는 과정이 필요할 수 있다.
    이를 위해 ScreenToClient 함수를 사용할 수 있음.
  • GetClientRect로 얻은 크기는 다이얼로그의 클라이언트 영역만을 기준으로 하므로, 윈도우의 테두리나 타이틀 바 등은 포함되지 않는다.
profile
rove drink eat

0개의 댓글