【问题标题】:How application can detect scaling and monitors layout change on Windows 10应用程序如何在 Windows 10 上检测缩放和监控布局变化
【发布时间】:2019-07-14 13:06:40
【问题描述】:

我有可以控制其他应用程序位置的应用程序。开始时,它会获取当前显示器的布局和尺寸。它们用于计算具有不同(非默认)缩放比例的辅助监视器上窗口的正确位置。但是当用户更新监视器的布局应用程序时,会继续使用初始值。

是否有可能捕捉缩放变化或监控布局变化?

【问题讨论】:

  • 没人知道吗?问题评级中的减号没有多大帮助......
  • 天啊,耐心点,你一个小时前刚刚发布了这个问题。你需要给人们时间来回答。在抱怨之前等待一天左右。下一次,请在提问之前做一些研究。
  • 只抱怨没有解释的缺点。我做了很多研究。我发现的只是 WM_DPICHANGED 和 WM_DISPLAYCHANGE 消息处理。但是我的应用程序没有活动的。并且仅当应用程序窗口发生 DPI 更改时才会触发消息。但我需要找到捕获监视器布局更改事件或缩放更改事件的方法。

标签: c++ windows-10 multiple-monitors highdpi


【解决方案1】:

您需要接收和处理WM_DPICHANGEDWM_DISPLAYCHANGE 消息。

我建议您阅读 MSDN 关于 High DPI Desktop Application DevelopmentMultiple Display Monitors 的文档以了解更多详细信息。

【讨论】:

  • 这不适用于我的应用程序,因为它没有活动窗口。它所做的一切 - 通过外部请求控制其他窗口的位置。 WM_DPICHANGEDWM_DISPLAYCHANGE 仅适用于属于当前应用程序的窗口。
  • @htonus 创建一个隐藏窗口,以便您可以接收这些消息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-02-23
  • 2011-12-02
  • 2016-09-08
  • 1970-01-01
  • 2015-10-31
  • 1970-01-01
  • 2012-03-07
相关资源
最近更新 更多