클라이언트 사이즈를 350, 400 으로 맞추고 싶다고 가정 하자
우선 GetWindowLong으로 자신의 윈도우 스타일을 알아낸다음
AdjustWindowRect로 자신의 윈도우 스타일 + 메뉴의 유무 + 클라이언트 사이즈를 더해서 최종 윈도우 사이즈를 얻어낸다.
그렇게 얻어낸 윈도우 사이즈를 바탕으로 MoveWindow로 사이즈를 맞추면 된다.
RECT rt={100,100,450,500};// 원하는 클라이언트 사이즈
DWORD dwStyle = (DWORD)GetWindowLong(AfxGetMainWnd()->m_hWnd, GWL_STYLE);
AdjustWindowRect(&rt, dwStyle,TRUE);
우선 GetWindowLong으로 자신의 윈도우 스타일을 알아낸다음
AdjustWindowRect로 자신의 윈도우 스타일 + 메뉴의 유무 + 클라이언트 사이즈를 더해서 최종 윈도우 사이즈를 얻어낸다.
그렇게 얻어낸 윈도우 사이즈를 바탕으로 MoveWindow로 사이즈를 맞추면 된다.
RECT rt={100,100,450,500};// 원하는 클라이언트 사이즈
DWORD dwStyle = (DWORD)GetWindowLong(AfxGetMainWnd()->m_hWnd, GWL_STYLE);
AdjustWindowRect(&rt, dwStyle,TRUE);
MoveWindow(&rt);
아래 코드에서 윈도우 초기 사이즈를 0,0이 아닌 100,100으로 시작한 이유는
AdjustWindowRect로 얻어진 사이즈는 right,bottom을 변경하는게 아니라 left, top을 수정 하기 때문에
0,0으로 시작하면 -값이 들어갈 수 있다.
그럼 타이틀바나 메뉴는 화면 안보일 수도 있기 때문이다.