SetProcessDpiAwarenessCoNtext 函式 (winuser.h)
將目前進程設定為每英吋的指定點, (DPI) 感知內容。 DPI 感知內容來自 DPI_AWARENESS_CONTEXT 值。
注意
建議您透過應用程式資訊清單設定進程預設 DPI 感知,而不是 API 呼叫。 如需詳細資訊 ,請參閱設定處理常式的預設 DPI 感知 。 透過 API 呼叫設定進程預設 DPI 感知可能會導致非預期的應用程式行為。
語法
BOOL SetProcessDpiAwarenessContext(
[in] DPI_AWARENESS_CONTEXT value
);
參數
[in] value
要設定 的DPI_AWARENESS_CONTEXT 控制碼。
傳回值
如果作業成功,則此函式會傳回 TRUE,否則傳回 FALSE。 若要取得擴充的錯誤資訊,請呼叫 GetLastError。
如果進程的預設 API 感知模式已透過先前的 API 呼叫或在應用程式資訊清單中 (設定) ,則可能的錯誤ERROR_INVALID_PARAMETER無效,ERROR_ACCESS_DENIED。
備註
此 API 是先前現有 SetProcessDpiAwareness API 的更進階版本,可讓進程預設設定為更精細 的DPI_AWARENESS_CONTEXT 值。 最重要的是,這可讓您以程式設計方式將 Per Monitor v2 設定為進程預設值,這與先前的 API 不一樣。
這個方法會設定應用程式內所有線程的預設 DPI_AWARENESS_CONTEXT 。 個別執行緒可以使用 SetThreadDpiAwarenessCoNtext 方法,從預設值變更其 DPI 感知。
您必須先呼叫此 API,才能呼叫任何相依于 DPI 感知的 API (,包括在程式中建立任何 UI 之前) 。 一旦為應用程式設定 API 感知,任何未來對此 API 的呼叫都會失敗。 不論您是在資訊清單中設定 DPI 感知,還是使用此 API,都是如此。
如果未設定 DPI 感知層級,預設值 會DPI_AWARENESS_CONTEXT_UNAWARE。
規格需求
最低支援的用戶端 | Windows 10版本 1703 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2016 [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | winuser.h |
程式庫 | User32.lib |
Dll | User32.dll |