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% (96 DPI) 。 系統會在任何其他 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

舊建議是使用設定 dpiAware 定義應用程式指令清單中的 DPI 感知層級,如 PROCESS_DPI_AWARENESS中所述。 現在 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