본문 바로가기
Program/C++ MFC

[C++ MFC] Dialog 창 크기 동일하게 맞추기

by 냠만 2024. 6. 14.

MFC로 작업을 진행하게 되면 Dialog를 거의 C#의 Usercontrol이나 Sub form만큼 자주 사용하게 됩니다. 고정된 Window 크기에 Dialog를 docking 해서 사용하는 경우 각 Dialog 사이즈를 동일하게 맞추어야 하는 경우가 많은데요.

아래 이미지처럼 Mainform 위에 Panel을 제어하는 Tab Control이 존재하고 Panel에 Dialog를 스위칭하여 Show하는 경우입니다. 일반적으로 Tab Control을 사용하면 접할 수 있는 포맷입니다.

 

이럴 경우 기능이 다른 Dialog의 사이즈를 동일하게 맞추는 방법이 필수적으로 필요합니다.

그렇지 않으면 Panel사이즈와 다르게 Dialog가 불러와지고 보기가 굉장히 싫어지는 현상이 발생합니다.

 

[크기 맞추기 확인 순서]

크기를 일정하게 맞추기 위해 확인해야 될 사항이 4가지정도 있습니다.

 

1. Font Size

일반적으로 프로그램상의 폰트 사이즈와 디스플레이 되는 픽셀 사이즈가 다르기 때문에 폰트는 동일하게 맞춰주시는 게 좋습니다.

 

2. Ctrl + T (대화상자 테스트) 활용

MFC에는 특별하게 사이즈를 동일하게 맞춰주는 기능이 없습니다. WPF처럼 xaml을 직접 수정 가능하다면 편할 것 같은데 역시 편의기능은 못한 것 같습니다.

따라서 직접 Dialog마다 대화상자 테스트를 열어서 사이즈를 확인해야 합니다. 디폴트가 되는 Dialog에서 대화상자를 열어놓고 메모장을 열고 사이즈를 동일하게 맞춘 다음 맞춰야 하는 Dialog에서 대화상자 테스트를 열었다 닫았다 하면서 메모장의 크기와 맞춰야 합니다.


정말 불편하고 노가다 작업이지만 현재로서는 이 방법이 최선입니다.

 

3. Visual Studio 오른쪽 하단 Control size 확인

Control 좌 클릭 시 Visual Studio 오른쪽 하단에 선택된 Control의 크기가 표기됩니다. 일반적으로 처음 MFC를 접하시는 분들은 확인하기 어려우니 잘 살펴보세요. 특정 Control의 크기를 알 수 있으면 다른 Dialog에서도 동일한 Control size를 조정할 수 있습니다.

 

4. Dialog Default font size를 확인해야 합니다.

해당 방식은 1번과 비슷하지만 디폴트로 설정되는 폰트가 있기 때문에 그걸 수정한 경우 컨트롤의 폰트를 맞춘다 해도 Dialog 사이즈가 다를 수 있습니다.

[결론]

결과적으로 폰트 및 사이즈 동일하게 맞추고 Dialog 크기와 동일한 메모장을 하나 열고 대화상자 테스트를 계속 열었다 닫았다 하면서 일일이 맞춰주어야 합니다.

1920x1080 이상 모니터에서는 5 ~ 10픽셀 정도 차이는 크게 체감을 할 수 없으니 그냥 대충 눈대중으로 맞추셔도 크게 위화감은 없습니다.