SetProcessDpiAwareness 函式 (殼層calingapi.h)
設定進程預設 DPI 感知層級。 這相當於使用對應的DPI_AWARENESS_CONTEXT值呼叫 SetProcessDpiAwarenessContext。
注意
建議您透過應用程式指令清單來設定處理程式預設 DPI 感知,而不是 API 呼叫。 如需詳細資訊 ,請參閱為進程設定預設 DPI 感知 。 透過 API 呼叫設定進程預設 DPI 感知可能會導致非預期的應用程式行為。
語法
HRESULT SetProcessDpiAwareness(
[in] PROCESS_DPI_AWARENESS value
);
參數
[in] value
要設定的 DPI 感知值。 可能的值為來自 PROCESS_DPI_AWARENESS 列舉。
傳回值
此函式會傳回下列其中一個值。
傳回碼 | 描述 |
---|---|
|
已成功設定應用程式的 DPI 感知。 |
|
傳入的值無效。 |
|
先前或透過應用程式 (.exe) 指令清單呼叫此 API,已設定 DPI 感知。 |
備註
舊版 Windows 只有整個應用程式的一個 DPI 感知值。 對於這些應用程式,建議在指令清單中設定 DPI 感知值,如 PROCESS_DPI_AWARENESS中所述。 在該建議下,您不應該使用 SetProcessDpiAwareness 來更新 DPI 感知。 事實上,未來對此 API 的呼叫會在設定 DPI 感知一次之後失敗。 現在 DPI 感知已系結至線程而非應用程式,您可以使用這個方法來更新 DPI 感知。 不過,請考慮改用 SetThreadDpiAwarenessContext 。
對於較舊的應用程式,強烈建議不要使用 SetProcessDpiAwareness 來設定應用程式的 DPI 感知。 相反地,您應該在應用程式指令清單中宣告應用程式的 DPI 感知。 如需 DPI 感知值的詳細資訊,以及如何在指令清單中設定它們,請參閱 PROCESS_DPI_AWARENESS 。
如果未設定 DPI 感知等級,則預設值為 PROCESS_DPI_UNAWARE。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 8.1 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2012 R2 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | shellscalingapi.h |
程式庫 | Shcore.lib |
Dll | Shcore.dll |