我有一个MFC应用程序,它具有默认的MFC DPI支持:它支持高DPI,但不支持DPI。 Windows 10版本1703增加了对System (enhanced) DPI scaling的支持。我在.exe兼容性设置中从Windows资源管理器启用了此模式,并且适用于我的应用程序。使用VS2017增强了系统DPI缩放比例
理想情况下,我会让应用程序完全符合多显示器DPI,但这是相当数量的工作。相反,如果操作系统支持,我想告诉操作系统为我的应用程序使用系统(增强)DPI缩放。
应用程序的清单是否可以启用此功能,如果有的话,需要添加或更改哪些内容?
此外,如何修改清单?目前,我正在使用默认的Visual Studio 2017 MFC项目结构,该项目结构在我的项目中没有清单文件。相反,清单的内容被指定为项目属性,清单将使用mt.exe生成。我可以使用mt.exe注入更改吗?如果我需要用自定义替换清单,最简单的方法是什么?
是的,你可以[通过你的清单启用该设置](https://blogs.windows.com/buildingapps/2017/05/19/improving-high-dpi-experience-gdi-based-desktop-apps/) (这个例子在那篇文章的结尾附近)。 – zett42
看起来我需要'asmv3:application','asmv3:windowsSettings'和'gdiScaling'元素。我可以使用mt.exe自动生成方法将这些添加为增量更改,还是需要手动明确指出整个清单? –
您可以通过项目设置>清单工具>其他清单文件将其添加为增量更改。在那里定义的文件会与自动生成的文件“合并”。 – zett42