gpt4 book ai didi

windows - 使用 VS2017 增强系统 DPI 缩放

转载 作者:可可西里 更新时间:2023-11-01 13:29:10 32 4
gpt4 key购买 nike

我有一个默认支持 MFC DPI 的 MFC 应用程序:它支持高 DPI,但不支持每个显示器的 DPI。 Windows 10 版本 1703 添加了对 System (enhanced) DPI scaling 的支持.我在 .exe 兼容性设置中从 Windows 资源管理器启用了此模式,它适用于我的应用程序。

理想情况下,我会让应用程序完全符合多显示器 DPI 标准,但这是一项相当大的工作量。因此,如果操作系统支持,我想告诉操作系统为我的应用程序使用系统(增强的)DPI 缩放。

应用程序的 list 是否启用此功能,如果启用,需要添加或更改什么?

另外,如何修改 list ?目前,我使用的是默认的 Visual Studio 2017 MFC 项目结构,它在我的项目中没有 list 文件。相反, list 的内容被指定为项目属性,并且 list 是用 mt.exe 生成的.我可以使用 mt.exe 注入(inject)更改吗?如果我需要用自定义 list 替换 list ,最简单的方法是什么?

最佳答案

添加gdiScaling设置为您的应用程序的 list ,以告知 Windows 在所有显示器上应用 GDI 缩放。

  1. 在您的项目中创建一个新文件 GdiScaling.manifest
<assembly xmlns="urn:schemas-microsoft-com:asm.v1"  xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" manifestVersion="1.0">
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2017/WindowsSettings">
<gdiScaling>true</gdiScaling>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>
  1. 在项目设置中,在 Manifest Tool 中,将 Additional Manifest Files 设置为 GdiScaling.manifest。这会将您的 GDI 缩放设置合并到生成的 list 的其余部分。

当您构建时,您会收到一条关于 Microsoft 未采取行动的警告,但您已经知道这一点。 :-) 警告的确切文本是这样的:

GdiScaling.manifest : manifest authoring warning 81010002: Unrecognized Element "gdiScaling" in namespace "http://schemas.microsoft.com/SMI/2017/WindowsSettings".

幸运的是,Windows 并不关心并识别该设置。

关于windows - 使用 VS2017 增强系统 DPI 缩放,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46428510/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com