具有 DTS_SHOWNONE 样式的日期和时间选择器控件具有巨大的超大复选框

问题描述 投票:0回答:1

我的 C++ 应用程序包含标准的 日期和时间选择器控件,UI 中具有

DTS_SHOWNONE
样式。当应用程序在 Windows 11 上运行时,控件不会使复选框变得模糊和过大。

我已经从 Visule Studio 2022 模板创建了最简单的基于对话框的 MFC 应用程序,并且我看到了日期和时间选择器控件的相同行为。

enter image description here

应用程序和 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 版本的日期和时间选择器控件中。

更新: 似乎控制复选框填满了整个高度,看起来很奇怪。 enter image description here

c++ winapi mfc
1个回答
0
投票

推动@JonathanPotter 的评论来回答。

这是一个 Windows 高 DPI 错误。不幸的是机会完全为零 微软曾经对此采取过任何行动。我们被迫渲染 我们自己来修复它。

我提交了有关此问题的新内部反馈,https://aka.ms/AAryqe9

© www.soinside.com 2019 - 2024. All rights reserved.