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

另請參閱

DPI_AWARENESS_CONTEXT

SetThreadDpiAwarenessCoNtext

設定進程的預設 DPI 感知