Delphi 在运行时更改高 dpi

问题描述 投票:0回答:1

是否可以在运行时在“高 DPi”和“非高 DPi”程序视图之间切换?据我了解,它是在清单文件中确定的,您可以拥有高 DPi 应用程序或没有高 Dpi 应用程序,但不能同时拥有它们。我说得对吗?

delphi winapi
1个回答
3
投票

您可以使用

SetProcessDpiAwareness
函数在运行时指定它。或者对于早于每个显示器 DPI 感知的旧操作系统,有
SetProcessDPIAware

请仔细阅读文档。作为广泛的指导原则,建议您不要使用这些函数,并且应该更愿意在清单中指定此状态。这确实是一个不寻常的应用程序,需要使用

SetProcessDpiAwareness
SetProcessDPIAware

至少您肯定需要在流程生命周期的早期进行调用。 Windows 不仅希望调用尽早发生,而且我预计 VCL 的设计不会很好地应对进程生命周期中途的策略变化。

© www.soinside.com 2019 - 2024. All rights reserved.