SetProcessDpiAwarenessContext 函数 (winuser.h)

将当前进程设置为指定的每英寸点数 (dpi) 感知上下文。 DPI 感知上下文来自 DPI_AWARENESS_CONTEXT 值。

注意

建议通过应用程序清单(而不是 API 调用)设置进程默认 DPI 感知。 有关详细信息 ,请参阅设置进程的默认 DPI 感知 。 通过 API 调用设置进程默认 DPI 感知可能会导致意外的应用程序行为。

语法

BOOL SetProcessDpiAwarenessContext(
  [in] DPI_AWARENESS_CONTEXT value
);

parameters

[in] value

要设置的DPI_AWARENESS_CONTEXT句柄。

返回值

如果操作成功,此函数返回 TRUE,否则返回 FALSE。 要获得更多的错误信息,请调用 GetLastError。

对于无效输入, ERROR_INVALID_PARAMETER 可能存在的错误,如果已通过以前的 API 调用或在应用程序清单 ) (设置了进程的默认 API 感知模式,则ERROR_ACCESS_DENIED。

注解

此 API 是以前存在的 SetProcessDpiAwareness API 的更高级版本,允许将进程默认值设置为更精细 的DPI_AWARENESS_CONTEXT 值。 最重要的是,这允许以编程方式将 “每监视器 v2 ”设置为进程默认值,这在以前的 API 中是无法实现的。

此方法设置应用程序内所有线程的默认 DPI_AWARENESS_CONTEXT 。 使用 SetThreadDpiAwarenessContext 方法,单个线程的 DPI 感知可以从默认值更改。

在调用依赖于 DPI 感知的任何 API 之前,必须先调用此 API, (包括在进程) 创建任何 UI 之前。 为应用设置 API 感知后,以后对此 API 的任何调用都将失败。 无论是在清单中设置 DPI 感知还是使用此 API,都是如此。

如果未设置 DPI 感知级别,则默认值为 DPI_AWARENESS_CONTEXT_UNAWARE

要求

   
最低受支持的客户端 Windows 10版本 1703 [仅限桌面应用]
最低受支持的服务器 Windows Server 2016 [仅限桌面应用]
目标平台 Windows
标头 winuser.h
Library User32.lib
DLL User32.dll

另请参阅

DPI_AWARENESS_CONTEXT

SetThreadDpiAwarenessContext

设置进程的默认 DPI 感知