我的 C++ 应用程序包含标准的 日期和时间选择器控件,UI 中具有
DTS_SHOWNONE
样式。当应用程序在 Windows 11 上运行时,控件不会使复选框变得模糊和过大。
我已经从 Visule Studio 2022 模板创建了最简单的基于对话框的 MFC 应用程序,并且我看到了日期和时间选择器控件的相同行为。
应用程序和 MFC 示例都使用标准 Windows 清单:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<dependency>
<dependentAssembly>
<assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" processorArchitecture="amd64" publicKeyToken="6595b64144ccf1df" language="*"></assemblyIdentity>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
</requestedPrivileges>
</security>
</trustInfo>
<application xmlns="urn:schemas-microsoft-com:asm.v3">
<windowsSettings>
<dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware>
</windowsSettings>
</application>
</assembly>
问题只有一个,如何解决?
P.S.:相同的应用程序和示例在 Windows 10 上运行良好,因此我认为该错误存在于 Windows 11 版本的日期和时间选择器控件中。
推动@JonathanPotter 的评论来回答。
这是一个 Windows 高 DPI 错误。不幸的是机会完全为零 微软曾经对此采取过任何行动。我们被迫渲染 我们自己来修复它。
我提交了有关此问题的新内部反馈,https://aka.ms/AAryqe9。