MFC를 사용해서 윈도우창을 만들었는데 사이즈 조절이 가능해 창크기가 자신이 디자인한 화면보다 작아지거나 커지는 경우가 있어서 이를 방지하고자 최대, 최소 값을 정해서 자신이 원하는 사이즈 만큼은 보여줄수 있는 기능이 있어서 소개합니다. 위에서 볼 수 있듯이 창 크기가 작아져서 컨트롤들이 깨져 스크롤바가 나오는 문제가 생겼네요.. 해당 방법은 다이얼로그(대화상자) 및 SDI, MDI, 다중뷰, 싱글뷰 프레임에서도 동일하게 적용할 수 있습니다.
일단 자신이 클래스 뷰 탭을 선택합니다. 클래스 뷰에서 자신이 보여줄 화면을 선택해서 마우스 오른쪽 버튼을 눌러줍니다. 저는 SDI 단일 뷰 이기 때문에 CMainFrame에서 진행을 하였고, 다이얼로그(대화상자) 인 경우에는 CXXXXDialg, CxxxxDlg 클래스를 선택해서 진행하면 됩니다. 그리고 속성을 선택해줍니다.
그럼 속성창이 뜨는데요.. 메세지 아이콘을 선택해줍니다. 바로 윈도우 메세지를 통해서 진행하기 때문인데요.. 윈도우 메세지 중에서 WM_GETMINMAX_INFO 항목을 선택해서 추가하여 메세지를 추가해줍니다.
그럼 자동으로 해당 메세지의 코드가 삽입된걸 볼 수 있습니다.
이제 자신이 원하는 사이즈를 적어주기면 하면 되는데요. 위의 값처럼 매개변수로 넘겨받은 MINMAXINFO의 포인트 값을 이용해서 최소값과 최대값을 설정하면 됩니다. 최소값이나 최대값 둘중 하나만 설정해도 되고 둘다 설정해도 됩니다.
lpMMI->ptMinTrackSize.x, lpMMI->ptMinTrackSize.y
lpMMI->ptMaxTrackSize.x, lpMMI->ptMaxTrackSize.x
최대값을 설정하면 창을 최대화 할때에도 해당 크기만큼만 커집니다. 마우스로 창크기를 조절해도 최소값 만큼만 작아지고 최대값 이상 커지지 않게 됩니다.
해당 정보에 도움이 되셨다면 공감(하트) 버튼 클릭 부탁드리겠습니다.
'Programing > MFC' 카테고리의 다른 글
MFC MDI(다중 문서) 에서 초기창(초기뷰) 뜨지 않게 하기 (0) | 2015.10.22 |
---|