【问题标题】:What window message applications receive on screen text size change屏幕文本大小更改时应用程序收到的窗口消息
【发布时间】:2017-11-03 15:28:59
【问题描述】:

用户可以更改显示文本的比例(例如,在 Windows 10 上通过设置 → 显示 → 更改文本、应用程序和其他项目的大小)。

我应该处理哪些窗口消息以了解此类更改?

我有一个大小取决于实际字体高度的东西。但是,尺寸调整非常耗时,因此我不希望在每次 WM_PAINT 到达时都进行调整。

【问题讨论】:

  • WM_PAINT 上检查字体的指标应该非常简单快捷。
  • @MarkRansom,所以我需要在WM_CREATE 中存储一个初始字体高度,然后将其与WM_PAINT 中的实际高度进行比较,如果它们不同,则进行调整并更新隐藏的高度,对吗?
  • 我不确定WM_CREATE 中是否有合适的字体,所以我只需要等待第一个WM_PAINT 进行初始测量。但我认为你有这个想法。
  • @MarkRansom,好吧,既然没有更多的答案,我希望你的解决方案是我情况下唯一合适的解决方案。因此,最好将您的建议作为答案发布。
  • 无需我发布答案,您拥有所需的所有信息。此外,我很想知道自己是否有这样的消息。

标签: windows user-interface


【解决方案1】:

不是WM_DPICHANGED吗?

当窗口的每英寸有效点数 (dpi) 发生变化时发送。 DPI 是窗口的比例因子。
- 将窗口移至具有不同 DPI 的新显示器。
- 托管窗口的监视器的 DPI 发生变化。

【讨论】:

  • 在 Windows XP 上不会触发此事件。有没有通用的解决方案?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-09-23
  • 2020-10-14
  • 1970-01-01
  • 2017-07-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多