다음을 통해 공유


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%
23" QFHD(4K) 3840 2160 192 200%
24" QHD 2560 1440 122 125%

모든 디바이스에 대해 이 정보를 프로그래밍 방식으로 찾으려면 데이터를 다시 보고하는 유틸리티 프로그램을 작성하면 됩니다. 네이티브 기본 해상도는 데스크톱용 hdc와 HORZRES 및 VERTRES 인덱스를 사용해 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
모니터별 DPI 인식 <dpiAware>True/PM</dpiAware> Windows 세션이 시작된 시점(사용자가 Windows에 처음 로그인한 경우)의 기본 디스플레이의 DPI입니다. 애플리케이션이 있는 디스플레이의 DPI를 가져오려면 GetWindowDpi() 또는 GetDpiForMonitor()를 사용합니다.

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

크기 조정 모드

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

표 3 HKCU\Control Panel\Desktop\Win8DpiScaling 값

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

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

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

표 4 HKCU\Control Panel\Desktop\DesktopDPIOverride 값

키 값 의미
<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%, 125%, 150%, 200% 이외의 값을 선택할 수 있지만 범위(100%-500%)로 제한됩니다. 이 설정은 HKCU\Control Panel\Desktop\LogPixels 레지스트리 키에서 구성됩니다.

표 6 HKCU\Control Panel\Desktop\LogPixels 값

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

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

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