【问题标题】:Value of PixelsPerInch varying with windows themes?PixelsPerInch 的值随 Windows 主题而变化?
【发布时间】:2015-03-27 10:47:01
【问题描述】:

在 windows 7 环境下,PixelsPerInch 的值会随着 在 Win7 和经典主题之间切换。 奇怪的是,虽然当前的 Windows 操作系统在 150% 上处于活动状态 scale,在 Win7 主题中 PixelsPerInch 返回值 96。

附表将进一步详述。

【问题讨论】:

    标签: delphi winapi delphi-2010 delphi-xe7


    【解决方案1】:

    您的应用程序尚未声明自己具有高 DPI 感知能力。因此,它受制于 DPI 虚拟化。这就解释了为什么 150% 缩放会在主题时提供 96 的 DPI。

    为什么在经典主题中没有 96 的 DPI?嗯,那是因为 DPI 虚拟化依赖于 DWM,而当您使用经典主题时,DWM 是不活动的。

    我怀疑所有这些对你来说都是新闻。在这种情况下,您需要先阅读从此处开始的 MSDN 主题:https://msdn.microsoft.com/en-us/library/windows/desktop/dd464646.aspx

    【讨论】:

    • 在阅读时要特别注意清单文件是什么,以及它可能包含的内容,这可能会告诉 Windows 你想要什么级别的 DPI 意识。请注意,在 delphi XE7 中配置自定义清单比在 delphi 2010 中容易得多。
    • 感谢@David Heffernan。经过一番阅读,问题已得到澄清。
    • @Warren P 在阅读了您发布的链接后,我没有看到“在 delphi XE7 中配置自定义清单比在 delphi 2010 中容易得多”
    • 这是包含清单的正常方式。比很容易断开连接的外部文件更可取。所以是的,将清单资源链接到您的可执行文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 1970-01-01
    • 1970-01-01
    • 2015-12-27
    相关资源
    最近更新 更多