SetProcessDpiAwarenessContext 函数 (winuser.h)
将当前进程设置为指定的每英寸点数 (dpi) 感知上下文。 DPI 感知上下文来自 DPI_AWARENESS_CONTEXT 值。
注意
建议通过应用程序清单(而不是 API 调用)设置进程默认 DPI 感知。 有关详细信息 ,请参阅设置进程的默认 DPI 感知 。 通过 API 调用设置进程默认 DPI 感知可能会导致意外的应用程序行为。
语法
BOOL SetProcessDpiAwarenessContext(
[in] DPI_AWARENESS_CONTEXT value
);
parameters
[in] value
返回值
如果操作成功,此函数返回 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 |