【发布时间】:2018-03-07 19:10:09
【问题描述】:
我有一个具有默认 MFC DPI 支持的 MFC 应用程序:它支持高 DPI,但不支持每个显示器的 DPI。 Windows 10 版本 1703 添加了对 System (enhanced) DPI scaling 的支持。我从 Windows 资源管理器的 .exe 兼容性设置中启用了此模式,它适用于我的应用。
理想情况下,我会让应用完全符合多显示器 DPI 的要求,但这是一项相当大的工作量。因此,如果操作系统支持,我想告诉操作系统为我的应用程序使用系统(增强)DPI 缩放。
应用程序的清单是否启用此功能,如果启用,需要添加或更改什么?
另外,如何修改清单?目前,我正在使用默认的 Visual Studio 2017 MFC 项目结构,该结构在我的项目中没有清单文件。相反,清单的内容被指定为项目属性,并使用mt.exe 生成清单。我可以用 mt.exe 注入更改吗?如果我需要用自定义清单替换清单,最简单的方法是什么?
【问题讨论】:
-
是的,您可以enable that setting through your manifest(该示例位于该文章末尾附近)。
-
看来我需要
asmv3:application、asmv3:windowsSettings和gdiScaling元素。我可以通过 mt.exe 自动生成方法将这些作为增量更改添加,还是需要手动显式声明整个清单? -
您可以通过项目设置 > 清单工具 > 附加清单文件将其添加为增量更改。在那里定义的文件与自动生成的文件“合并”。
标签: windows mfc visual-studio-2017 manifest dpi