2009-10-28 1 views
3

MFC 응용 프로그램이 있습니다. Windows 7에서 실행할 때 디스플레이 백분율을 meduium - 125 %로 변경하면 TextControl이 끊어짐 (문장의 끝이 표시되지 않음)을 알게되었습니다.Windows 7에서 디스플레이를 125 %로 변경하면 컨트롤이 MFC에서 잘립니다.

어떻게 해결할 수 있습니까?

대화 상자의 컨트롤 크기를 늘릴 수는 있지만 코드를 통해이를 수행하고 싶습니다. 내 응용 프로그램이 현지화되어 있으며 모든 언어의 모든 대화 상자를 변경하지 않으려 고합니다.

답변

1

일반적으로 절대 좌표는 상대 좌표가 아닌 일부 크기 조정에 사용됩니다. 이 프레임 워크는 처음에는 대형 DPI에서 올바르게 배치 할 것이므로 크기 조정을 통해 일을 직 접 유지하는 것은 사용자의 몫입니다.

다음과 같은 레이아웃 프레임 워크를 사용할 수 있습니다 : Ultimate Toolbox Layout Manager 또는 직접 롤업 할 수 있습니다. 문서에서 컨트롤의

  • (아래 | 권리 | | 왼쪽 앵커 위)

    1. ID, 크기, 위치 및 레이아웃 동작을 캡처하는 구조체를 정의 여기

      은 내가 사용하는 일반적인 패턴이다 생성자는 원하는 레이아웃 동작을 사용하여 구조체 배열을 초기화합니다.
    2. OnInitDialog에서 초기 제어 위치를 캡처합니다. 왼쪽 상단에 앵커로 설정된 컨트롤의 경우 부모의 위쪽과 왼쪽에서 초기 거리를 가져와야합니다.
    3. OnSize에서 레이아웃 동작에 따라 각 컨트롤의 위치를 ​​조정하고 크기를 조정하십시오.
  • 0

    귀하의 케이스에서 도움이되는지 확실하지 않지만 ResizableLib은 제게 적합합니다. 또한 라이브러리 생성을 건너 뛰고 프로젝트의 파일 만 사용할 수도 있습니다.
    CResizableDialog에 대한 별도 기사가 있습니다. 몇 가지 간단한 단계에서 기존 대화 상자에이를 구현하는 방법을 설명합니다.

    관련 문제