none
[MFC] Dialog 크기와 Resource View RRS feed

  • 질문

  • 안녕하세요.

    Resource View에서 보여지는 대로 구성을 한 다음에

    알맞은 크기라고 생각되어 릴리즈하여 배포하였는데,

    다른 컴퓨터에서는 크기가 제멋대로인 경우가 많네요.

    MoveWindow로 일일히 Control 및 Dialog의 IDC를

    받아와서 조정하는 것 밖에 방법이 없을까요?

    리소스뷰대로 보여지는 코드가 Form View형태에서는

    있는 것으로 아는데.. 아시는 분 조언 부탁드립니다!

    2016년 8월 12일 금요일 오전 12:41

답변

  • 다음의 두 가지 사항에 유의하셔서 만드셔야 할 것 같네요.

    1. 리소스 뷰에서 표시하는 크기 단위는 픽셀 단위가 아니다.

    리소스 뷰에서 표시하는 단위는 DLU(다이얼로그 유닛)라는 단위이며 픽셀 단위와는 다릅니다.

    DLU를 픽셀 단위로 변환하는 공식이 있긴 합니다만 폰트 크기, DPI 등에 영향을 받아 잘 안맞더라구요.

    픽셀 단위로 맞추시려면 말씀하신대로 MoveWindow/SetWindowPos 함수를 사용하시는게 가장 좋습니다.

    2. DPI를 고려해야 한다.

    일반적인 데스크탑 PC 환경에서는 DPI 100% 설정으로 사용하기 때문에 괜찮지만

    DPI 설정을 변경하게 되면 UI가 어색해지는 경우가 많습니다.

    이것은 DPI를 변경해가면서 테스트 해보시고 어색한 부분을 DPI를 고려한 코드로 변경하면서 수정해 나가셔야 할 것 같네요.

    문제가 되는 UI가 정확히 어떤 것인지 말씀해주시면 좀 더 자세한 답변을 드릴 수 있을 것 같습니다.


    • 답변으로 표시됨 2016년 8월 12일 금요일 오전 2:23
    2016년 8월 12일 금요일 오전 1:18

모든 응답

  • 다음의 두 가지 사항에 유의하셔서 만드셔야 할 것 같네요.

    1. 리소스 뷰에서 표시하는 크기 단위는 픽셀 단위가 아니다.

    리소스 뷰에서 표시하는 단위는 DLU(다이얼로그 유닛)라는 단위이며 픽셀 단위와는 다릅니다.

    DLU를 픽셀 단위로 변환하는 공식이 있긴 합니다만 폰트 크기, DPI 등에 영향을 받아 잘 안맞더라구요.

    픽셀 단위로 맞추시려면 말씀하신대로 MoveWindow/SetWindowPos 함수를 사용하시는게 가장 좋습니다.

    2. DPI를 고려해야 한다.

    일반적인 데스크탑 PC 환경에서는 DPI 100% 설정으로 사용하기 때문에 괜찮지만

    DPI 설정을 변경하게 되면 UI가 어색해지는 경우가 많습니다.

    이것은 DPI를 변경해가면서 테스트 해보시고 어색한 부분을 DPI를 고려한 코드로 변경하면서 수정해 나가셔야 할 것 같네요.

    문제가 되는 UI가 정확히 어떤 것인지 말씀해주시면 좀 더 자세한 답변을 드릴 수 있을 것 같습니다.


    • 답변으로 표시됨 2016년 8월 12일 금요일 오전 2:23
    2016년 8월 12일 금요일 오전 1:18
  • 감사합니다. 픽셀 단위로 확인하는 방법이 오래 걸려도 확실할 것 같네요.

    ChartDirector라는 라이브러리를 사용하여 UI구성중이고, Win10 사용중입니다.

    배포받은 컴퓨터는 Win7인데 제가 리소스뷰에서 보는 화면과 크기가 제각기 다르게 나오더라구요.

    DPI에 대하여 자세히는 모르지만, 혹 DPI에 맞춤형 예제 코드가 있으신지요?

    WM_DPICHANGED메세지를 추가하면 된다고 검색해보았습니다만...

    • 편집됨 2016년 8월 12일 금요일 오전 2:27
    2016년 8월 12일 금요일 오전 2:23