DPI 관련 Api 및 레지스트리 설정

배포 사용자 지정을 수행 해야 하는 경우 다음 섹션에서 설치 후 스크립트에서 액세스 해야 하는 레지스트리 키 및 시스템 매개 변수를 설명 합니다.

문서 내용:

기본 디스플레이 기본 해상도

표 1 Windows 8.1 크기 조정 수준은전체를 의미 하는 것은 아니지만 여러 일반적인 디스플레이의 Windows 8.1 크기 조정 수준에 대 한 정보를 제공 합니다. 패널 DPI 는 패널의 실제 픽셀 밀도를 나타내고, 배율 수준은 이 표시에 사용 되는 배율 인수를 나타냅니다.

표 1 Windows 8.1 크기 조정 수준

표시 크기 디스플레이 해상도 가로 (픽셀) 세로 (픽셀) 패널 DPI 크기 조정 수준
10.6 " FHD 1920 1080 208 150%
10.6 " HD 1366 768 148 100%
11.6 " WUXGA 1920 1200 195 150%
11.6 " HD 1366 768 135 100%
13.3 " WUXGA 1920 1200 170 150%
13.3 " QHD 2560 1440 221 200%
13.3 " HD 1366 768 118 100%
15.4 " FHD 1920 1080 143 125%
15.6 " QHD + 3200 1800 235 200%
17 FHD 1920 1080 130 125%
불가능 QFHD (4K) 3840 2160 192 200%
24 QHD 2560 1440 122 125%

모든 장치에 대 한이 정보를 프로그래밍 방식으로 찾으려면 데이터를 다시 보고 하는 유틸리티 프로그램을 작성 하면 됩니다. 바탕 화면 및 HORZRES 및 VERTRES 인덱스에 대해 hdc를 사용 하 여 API GetDeviceCaps () 함수를 호출 하 여 네이티브 기본 확인을 검색 합니다.

// Get desktop dc
desktopDc = GetDC(NULL);
// Get native resolution
horizontalResolution = GetDeviceCaps(desktopDc,HORZRES);
verticalResolution = GetDeviceCaps(desktopDc,VERTRES);

GetDC에 대 한 자세한 내용은 GetDC () 함수를 참조 하세요.

기본 디스플레이 DPI 배율 인수

마찬가지로 LOGPIXELSX 및 LOGPIXELSY 인덱스를 사용 하 여 픽셀 밀도를 가져올 수 있습니다.

// Get desktop dc
desktopDc = GetDC(NULL);
// Get native resolution
horizontalDPI = GetDeviceCaps(desktopDc,LOGPIXELSX);
verticalDPI = GetDeviceCaps(desktopDc,LOGPIXELSY);

이러한 결과는 표 2 DPI 배율 요소에 표시 된 것 처럼 96가 100%에 해당 하는 좌표계에서 반환 됩니다.

표 2 DPI 배율 인수

DPI 배율
96 100
120 125
144 150
192 200

참고

이 API는 애플리케이션의 DPI 인식 모드에 따라 다른 결과를 반환합니다. 인식 모드를 구성하려면 아래에 설명된 대로 애플리케이션 매니페스트에 XML을 추가해야 합니다.

DPI 인식 모드 매니페스트 설정 반환 값
없음 없음  배율에 관계없이 모든 디스플레이의 경우 96
시스템 DPI 인식 <dpiAware > True < /dpiAware> Windows 세션이 시작된 시점(사용자가 Windows 처음 로그인했을 때) 기본 디스플레이의 DPI
Per-Monitor DPI 인식 <dpiAware > True/PM < /dpiAware> Windows 세션이 시작될 때(사용자가 Windows 처음 로그인했을 때) 기본 디스플레이의 DPI입니다. 애플리케이션이 있는 디스플레이의 DPI를 가져오려면 GetWindowDpi() 또는 GetDpiForMonitor()를 사용합니다.

이 매니페스트 설정에 대한 자세한 내용은 SetProcessDPIAware 함수 를 참조하세요.

크기 조정 모드

제어판\ 모양 및 개인 설정\표시 UI(사용자 인터페이스)에는 확인란이 포함되어 있습니다. 모든 디스플레이에 대해 하나의 크기 조정 수준을 선택하겠습니다.이 확인란은 시스템이 모든 디스플레이에 단일 배율 인수를 적용할지(Windows 8 이전 버전의 Windows) 또는 각 디스플레이의 픽셀 밀도를 고려하는 여러 배율 인수를 제어합니다. Windows 8.1 기본값). 이 확인란은 Windows 8.1 HKCU\제어판\Desktop\Win8DpiScaling 레지스트리 키를 구성합니다.

표 3 HKCU\제어판\Desktop\Win8DpiScaling 값

키 값 의미
0 각 디스플레이에 대한 다양한 배율 요소: Windows 8.1 기본값입니다. 한 디스플레이에서 다른 디스플레이로 이동되는 콘텐츠는 적절한 크기이지만 비트맵 크기가 조정될 수 있습니다.
1 모든 디스플레이에 동일한 배율 비율(Windows 8 및 이전 Windows 버전 동작)이 적용됩니다. 한 디스플레이에서 다른 디스플레이로 이동되는 콘텐츠의 크기가 잘못되었을 수 있습니다.

Windows 8.1 크기 조정 모드에서 크기 조정 재정의

모든 디스플레이에 대해 하나의 크기 조정 수준을 선택하라는 확인란이 선택 취소되고 시스템이 Windows 8.1 크기 조정 모드에서 실행 중이면 사용자에게 현재 배율 인수를 더 작음에서 중간, 큰 크기로 재정의할 수 있는 슬라이더가 제공됩니다. 이 설정은 HKCU\제어판\Desktop\DesktopDPIOverride 레지스트리 키에 구성됩니다.

표 4 HKCU\제어판\Desktop\DesktopDPI개요 값

키 값 의미
<0 각 디스플레이 배율 비율을 기본값에서 이 값으로 줄입니다(예: 기본값이 150% 크기 조정인 경우 -1은 125%, -2~100%).
0 각 디스플레이에 대해 기본값을 사용합니다.
0.> 각 표시 요소를 이 값으로 늘입니다(이전 예제를 사용하여 +1은 200% 크기 조정에 해당).

이 모드의 모든 디스플레이 배율 요소는 100%, 125%, 150%, 200%의 네 가지 값 중 하나로 제한됩니다. 또한 크기 조정이 적용된 후 애플리케이션에는 최소 720개의 유효 해상도 줄(즉, 디스플레이의 물리적 세로 해상도를 배율로 나눈 값)이 있어야 합니다. 이렇게 하면 허용되는 디스플레이 배율 비율의 범위를 추가로 제한할 수 있습니다. 표 5 표시 값은 다양한 크기의 디스플레이에 허용되는 값을 보여줍니다.

표 5 표시 값

수직선 지원되는 배율
<900 100%
>= 900 및 < 1080 100%, 125%
>=1080 및 < 1440 100%, 125%, 150%
>=1440 100%, 125%, 150%, 200%

Windows 8 크기 조정 모드의 시스템 차원 배율

모든 디스플레이에 대해 하나의 크기 조정 수준을 선택하세요. 확인란을 선택하면 사용자는 각 디스플레이의 픽셀 밀도에 관계없이 모든 디스플레이에 적용되는 배율 비율을 지정할 수 있습니다. 사용자 지정 설정을 사용하여 사용자는 범위(100%-500%)로 제한되지만 100%, 125%, 150%, 200% 이외의 값을 선택할 수 있습니다. 이 설정은 HKCU\제어판\Desktop\LogPixels 레지스트리 키에 구성됩니다.

표 6 HKCU\제어판\Desktop\LogPixels 값

키 값 의미
96 모든 디스플레이에서 100% 크기 조정
120 모든 디스플레이에서 125% 크기 조정
144 모든 디스플레이에서 150% 크기 조정
192 모든 디스플레이에서 200% 크기 조정
<other> <모든 디스플레이에서 기타 > 96/100 크기 조정

높은 DPI 애플리케이션 개발을 위한 설명서

IT 전문가를 위한 높은 DPI 지원