【问题标题】:Direct2D WM_MOUSEMOVE message with scaled display具有缩放显示的 Direct2D WM_MOUSEMOVE 消息
【发布时间】:2014-10-11 04:44:42
【问题描述】:

我是 Direct2D 编程新手,遇到了 WM_MOUSEMOVE 消息处理问题。

正如MSDN 中所述,我应该使用这个枚举来处理鼠标移动,并且应该使用 LOWORD 和 HIWORD 来提取当前的 x 和 y 坐标。

当我在普通显示器上工作时效果很好,但是当我尝试在缩放显示器上运行它时(例如,在我的情况下为 125%),x 和 y 的值不准确,换句话说,有鼠标当前位置和从 lparam 中提取的值之间的“缩进”。

我想我应该查询操作系统或窗口以获取当前的缩放比例,以便我可以计算出正确的位置,但不知道如何!

有什么帮助吗?

【问题讨论】:

    标签: c++ direct2d


    【解决方案1】:

    您可以通过将程序声明为 DPI 感知来控制缩放。然后自动缩放将停止,您将获得原始坐标。不过,您需要自己缩放窗口。

    Creating a DPI-Aware Application

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-09-30
      • 1970-01-01
      • 2019-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多