다음을 통해 공유


DPI_AWARENESS 열거형(windef.h)

스레드, 프로세스 또는 창에 대한 dpi(인치당 점 수) 설정을 식별합니다.

Syntax

typedef enum DPI_AWARENESS {
  DPI_AWARENESS_INVALID = -1,
  DPI_AWARENESS_UNAWARE = 0,
  DPI_AWARENESS_SYSTEM_AWARE = 1,
  DPI_AWARENESS_PER_MONITOR_AWARE = 2
} ;

상수

 
DPI_AWARENESS_INVALID
값: -1
잘못된 DPI 인식. 잘못된 DPI 인식 값입니다.
DPI_AWARENESS_UNAWARE
값: 0
DPI를 인식하지 못합니다. 이 프로세스는 DPI 변경에 맞게 스케일링되지 않으며 항상 100%(96DPI)의 배율 인수를 갖는 것으로 간주됩니다. 다른 DPI 설정에서 시스템에 의해 자동으로 크기가 조정됩니다.
DPI_AWARENESS_SYSTEM_AWARE
값: 1
시스템 DPI 인식. 이 프로세스는 DPI 변경에 대해 크기가 조정되지 않습니다. DPI를 한 번 쿼리하고 프로세스의 수명 동안 해당 값을 사용합니다. DPI가 변경되면 프로세스가 새 DPI 값으로 조정되지 않습니다. DPI가 시스템 값에서 변경되면 시스템에 의해 자동으로 확장 또는 축소됩니다.
DPI_AWARENESS_PER_MONITOR_AWARE
값: 2
모니터별 DPI 인식. 이 프로세스는 DPI를 만들 때 DPI를 확인하고 DPI가 변경 될 때마다 배율 인수를 조정합니다. 이러한 프로세스는 시스템에 의해 자동으로 스케일링되지 않습니다.

설명

이전 버전의 Windows에서 DPI 값은 전체 애플리케이션에 대해 한 번만 설정되었습니다. 이러한 앱의 경우 PROCESS_DPI_AWARENESS 유형은 전체 애플리케이션에 대한 DPI 인식 유형을 결정했습니다. 현재 DPI 인식은 개별 스레드, 창 또는 프로세스 수준에서 정의되며 DPI_AWARENESS 형식으로 표시됩니다. 포커스가 프로세스 수준에서 스레드 수준으로 이동하는 동안 다양한 종류의 DPI 인식은 인식되지 않는, 시스템 인식 및 모니터별 인식과 동일합니다. 자세한 설명과 다양한 DPI 종류의 몇 가지 예제는 PROCESS_DPI_AWARENESS.

이전 권장 사항은 PROCESS_DPI_AWARENESS 설명된 대로 dpiAware 설정을 사용하여 애플리케이션 매니페스트에서 DPI 인식 수준을 정의하는 것이었습니다. 이제 DPI 인식이 전체 애플리케이션 대신 스레드 및 창에 연결되었으므로 앱 매니페스트에 새 창 설정이 추가됩니다. 이 설정은 dpiAwareness 이며 둘 다 매니페스트에 있는 경우 dpiAware 설정을 재정의합니다. 매니페스트를 사용하는 것이 좋지만 이제 SetThreadDpiAwarenessContext를 사용하여 앱이 실행되는 동안 DPI 인식을 변경할 수 있습니다.

애플리케이션에 DPI_AWARENESS_PER_MONITOR_AWARE 창이 있는 경우 WM_DPICHANGED메시지에 응답 하여 DPI를 추적해야 합니다.

예제

이 코드 조각은 애플리케이션 매니페스트에서 DPI_AWARENESS_SYSTEM_AWARE 값을 설정하는 방법을 보여 줍니다.

<dpiAwareness>System</dpiAwareness>

이 코드 조각은 애플리케이션 매니페스트에서 DPI_AWARENESS_PER_MONITOR_AWARE 값을 설정하는 방법을 보여 줍니다.

<dpiAwareness>PerMonitor</dpiAwareness>

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10 [데스크톱 앱만 해당]
지원되는 최소 서버 지원되는 버전 없음
머리글 windef.h

추가 정보

PROCESS_DPI_AWARENESS

SetThreadDpiAwarenessContext