GetDpiForMonitor 함수(shellscalingapi.h)

디스플레이의 인치당 점(dpi)을 쿼리합니다.

구문

HRESULT GetDpiForMonitor(
  [in]  HMONITOR         hmonitor,
  [in]  MONITOR_DPI_TYPE dpiType,
  [out] UINT             *dpiX,
  [out] UINT             *dpiY
);

매개 변수

[in] hmonitor

쿼리되는 모니터의 핸들입니다.

[in] dpiType

쿼리할 DPI의 유형입니다. 가능한 값은 MONITOR_DPI_TYPE 열거형에서 가져옵니다.

[out] dpiX

X축을 따라 DPI의 값입니다. 이 값은 화면이 회전하는 경우에도 항상 가로 가장자리를 나타냅니다.

[out] dpiY

Y축을 따라 DPI의 값입니다. 이 값은 화면이 회전하는 경우에도 항상 세로 가장자리를 나타냅니다.

반환 값

이 함수는 다음 값 중 하나를 반환합니다.

반환 코드 Description
S_OK
함수는 지정된 모니터에 대한 X 및 Y DPI 값을 성공적으로 반환합니다.
E_INVALIDARG
전달된 핸들, DPI 형식 또는 포인터가 잘못되었습니다.

설명

이 API는 DPI를 인식하지 않으며 호출 스레드가 모니터별 DPI 인식인 경우 사용하면 안 됩니다. 이 API의 DPI 인식 버전은 GetDpiForWindow를 참조하세요.

GetDpiForMonitor를 호출하면 호출 애플리케이션의 DPI 인식에 따라 다른 DPI 값을 받게 됩니다. DPI 인식은 일반적으로 애플리케이션 매니페스트에 정의된 애플리케이션 수준 속성입니다. DPI 인식 값에 대한 자세한 내용은 PROCESS_DPI_AWARENESS 참조하세요. 다음 표에서는 애플리케이션의 PROCESS_DPI_AWARENESS 값에 따라 결과가 어떻게 달라지는지 나타냅니다.

PROCESS_DPI_UNAWARE 96 앱이 다른 배율 인수를 인식하지 못하기 때문입니다.
PROCESS_SYSTEM_DPI_AWARE 앱은 모든 애플리케이션이 시스템 DPI를 사용하므로 시스템 DPI로 설정된 값입니다.
PROCESS_PER_MONITOR_DPI_AWARE 해당 디스플레이에 대해 사용자가 설정한 실제 DPI 값입니다.
 

*dpiX*dpiY의 값은 동일합니다. DPI를 확인하고 적절하게 응답하려면 값 중 하나만 기록하면 됩니다.

MONITOR_DPI_TYPEMDT_ANGULAR_DPI 또는 MDT_RAW_DPI 경우 반환된 DPI 값에는 제어판 데스크톱 크기 조정 재정의 슬라이더 컨트롤을 사용하여 사용자가 DPI에 적용한 변경 내용이 포함되지 않습니다.

제어판 DPI 설정에 대한 자세한 내용은 Windows 8.1 Preview 백서에서 DPI-Aware 데스크톱 애플리케이션 작성을 참조하세요.

요구 사항

   
지원되는 최소 클라이언트 Windows 8.1 [데스크톱 앱만 해당]
지원되는 최소 서버 Windows Server 2012 R2 [데스크톱 앱만 해당]
대상 플랫폼 Windows
헤더 shellscalingapi.h
라이브러리 Shcore.lib
DLL Shcore.dll

추가 정보

PROCESS_DPI_AWARENESS