如何解决Delphi 7 应用程序的高 DPI 解决方案,包括嵌入 Chromium (DCEF)
Delphi7 应用程序在 4k 显示器中看起来不错。 Windows 10 可以帮助他们。他们使用“DPI 意识”和“GDI 缩放”。但是如果应用程序包含 Chromium DCEF3(或 DCEF4 无关紧要)的组件,则会发生冲突。因为为了看起来不错,“GDI 缩放”和“DPI 意识”不需要 Chromium(DCEF)。
通过清单文件切换 DPI 应用程序的简单方法。对于我的应用程序 MShop.exe,我添加了文件 MShop.exe.manifest:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<assemblyIdentity
version="1.0.0.0"
processorArchitecture="X86"
name="Melbis Shop"
type="win32"
/>
<asmv3:application>
<asmv3:windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true/pm</dpiAware>
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">PerMonitorV2</dpiAwareness>
<gdiScaling xmlns="http://schemas.microsoft.com/SMI/2017/WindowsSettings">true</gdiScaling>
</asmv3:windowsSettings>
</asmv3:application>
<description>Melbis Shop e-commerce</description>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0"
processorArchitecture="x86"
publicKeyToken="6595b64144ccf1df"
language="*"
/>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="requireAdministrator"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
在这种情况下,我对应用程序(大图标和控件的文本)进行了很好的缩放,但对于 HTML 编辑器(DCEF3 组件)的缩放效果不佳(不需要):
如果我在文件 MShop.exe.manifest 中使用另一种方式拒绝“DPI 感知”(仅更改行):
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
<dpiAwareness xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">system</dpiAwareness>
在这种情况下,我对应用程序(小图标和控件的文本)没有(不良)缩放,但对 HTML 编辑器(DCEF3 组件)没有(良好)缩放:
也许,一种可能的方法是为放置在文件 libcef.dll 中的 Chromium 组件添加第二个清单文件?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。