共用方式為


enableNonClientDpiScaling 函式 (winuser.h)

在高 DPI 顯示器中,啟用指定最上層視窗之非工作區部分的自動顯示縮放比例。 必須在初始化該視窗期間呼叫。

注意DPI_AWARENESS_CONTEXT DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2執行的應用程式預設會自動調整其非客戶端區域。 它們不需要呼叫此函式。

 

語法

BOOL EnableNonClientDpiScaling(
  [in] HWND hwnd
);

參數

[in] hwnd

應該啟用自動調整的視窗。

傳回值

如果函式成功,則傳回非零的值。 如果此函式失敗,則傳回值為零。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

呼叫此函式將會針對具有DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE DPI_AWARENESS_CONTEXT的個別最上層窗口啟用非客戶端調整。 如果您改為不使用個別視窗感知,而且整個進程在 DPI_AWARENESS_PER_MONITOR_AWARE 模式中執行,則呼叫此函式將會在您的進程中啟用最上層視窗的非客戶端調整。

如果這兩者都不是 true,或者您從任何其他視窗呼叫這個方法,它將會失敗並傳回零的值。

預設不會啟用最上層視窗的非客戶端調整。 您必須呼叫此 API,以針對您想要自動調整非工作區的每個個別最上層視窗啟用此 API。 一旦您這麼做,就無法加以停用。 啟用非客戶端縮放表示系統針對視窗繪製的所有區域都會自動縮放,以響應視窗上的 DPI 變更。 這包括 標題 列、滾動條和功能表欄等區域。 當您想要讓操作系統負責根據監視器的 DPI 自動轉譯這些區域時,您想要呼叫 EnableNonClientDpiScaling

呼叫此函式只會啟用最上層視窗的非客戶端調整。 子視窗不受影響。

在初始化新視窗期間,必須從WM_NCCREATE呼叫此函式。 範例呼叫可能如下所示:

case WM_NCCREATE:
{
    EnableNonClientDpiScaling(hwnd);
    return (DefWindowProc(hwnd, message, wParam, lParam));
}

規格需求

需求
最低支援的用戶端 Windows 10 1607 版 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2016 [僅限傳統型應用程式]
目標平台 Windows
標頭 winuser.h (包含 Windows.h)
程式庫 User32.lib
Dll User32.dll