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 |