setProcessDpiAwareness 函数 (shellscalingapi.h)
设置进程默认 DPI 感知级别。 这等效于使用相应的DPI_AWARENESS_CONTEXT值调用 SetProcessDpiAwarenessContext。
注意
建议通过应用程序清单(而不是 API 调用)设置进程默认 DPI 感知。 有关详细信息 ,请参阅设置进程的默认 DPI 感知 。 通过 API 调用设置进程默认 DPI 感知可能会导致意外的应用程序行为。
语法
HRESULT SetProcessDpiAwareness(
[in] PROCESS_DPI_AWARENESS value
);
参数
[in] value
要设置的 DPI 感知值。 可能的值来自 PROCESS_DPI_AWARENESS 枚举。
返回值
此函数返回以下值之一。
返回代码 | 说明 |
---|---|
|
已成功设置应用的 DPI 感知。 |
|
传入的值无效。 |
|
通过之前调用此 API 或通过应用程序 (.exe) 清单来设置 DPI 感知。 |
注解
以前版本的 Windows 对于整个应用程序只有一个 DPI 感知值。 对于这些应用程序,建议在清单中设置 DPI 感知值,如 PROCESS_DPI_AWARENESS 中所述。 根据该建议,不应使用 SetProcessDpiAwareness 更新 DPI 感知。 事实上,在设置 DPI 感知一次后,将来对此 API 的调用将失败。 现在 DPI 感知已绑定到线程而不是应用程序,可以使用此方法更新 DPI 感知。 但是,请考虑改用 SetThreadDpiAwarenessContext 。
重要说明
对于较旧的应用程序,强烈建议不要使用 SetProcessDpiAwareness 来设置应用程序的 DPI 感知。 相反,应在应用程序清单中声明应用程序的 DPI 感知。 有关 DPI 感知值以及如何在清单中设置它们的详细信息,请参阅 PROCESS_DPI_AWARENESS 。
如果未设置 DPI 感知级别,则默认值为 PROCESS_DPI_UNAWARE。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8.1 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2012 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | shellscalingapi.h |
Library | Shcore.lib |
DLL | Shcore.dll |