2009-07-13 2 views
1

우리는 어플리케이션에서 고해상도 모니터를 지원해야한다는 요구 사항이 있습니다. 현재 응용 프로그램이 고해상도 모니터에 표시되면 표시되는 텍스트가 너무 작습니다. 기본적으로 Arial 12 포인트 글꼴을 사용합니다.고해상도 모니터에서 글꼴 크기를 매핑하는 데 사용할 배율 팩터는 무엇입니까?

이제 텍스트를 표시하려면 글꼴 크기를 비례하여 변경해야합니다. 나는 모니터 해상도가 주어지면 표적 글꼴 크기를 줄 수있는 공식을 생각해 내기가 어렵다.

여기 내 문제를 이해합니다.

1) 창에서 기본적으로 96 픽셀은 1 논리 인치에 해당합니다. 즉, 모니터 해상도가 높아지면 논리적 인치의 화면 크기도 커집니다.

2) 1 포인트 글꼴은 논리적 인치의 1/72입니다. 따라서 Logical inch 당 96 Pixels가 있다는 사실과 결합하면 Font 당 96/72 픽셀이 있습니다.

즉, 12 포인트 글꼴의 경우 점유 할 픽셀 수는 12 * 96/72 = 16 픽셀입니다.

이제 결과 글꼴을 제대로 볼 수 있도록 이러한 픽셀 수를 늘려야하는 배율을 알아야합니다. 크기 조정 된 픽셀 수를 알고있는 경우 글꼴 크기를 (96/72)로 나누어 간단히 계산할 수 있습니다.

모든 모니터 해상도에서 올바르게 글꼴 크기를 조정할 수있는 방법은 무엇입니까?

또한 이해가 잘못 되었다면 수정하십시오.

답변

3

LOGFONT structure에 대한 MSDN 페이지의 예가 있습니다. 이해가 정확하면 포인트 크기를 vertres/72까지 확장해야합니다.

lfHeight = -PointSize * GetDeviceCaps(hDC, LOGPIXELSY)/72; 
2

Windows에서 실제 모니터의 해상도와 일치하도록 해상도를 설정하면 조정할 필요가 없습니다. 잘 작성된 프로그램은 글꼴 크기를 적절하게 조정하는 데 필요한 곱셈과 나눗셈을 수행하며 최신 버전의 Windows에서는 OS가 글꼴 크기를 자동으로 조정하고 글꼴 크기를 조정합니다. 당신이 Windows 설정이 외부에서 처리하고자하는 경우

, 단순히 96

편집하여 실제 DPI 및 분할하여 글꼴 크기를 곱 : Windows Vista에서 시작하면 Windows는 실제 구성 DPI하지 않는 한을보고하지 않습니다 당신은 DPI 인식 프로그램을 작성합니다. Microsoft has some guidance on the subject. DPI 인식이 아닌 프로그램에 Microsoft에서 제공하는 기본 배율은 사용자 목적에 맞을만큼 좋습니다.

+0

나누기 72. [15char] – avakar

관련 문제