具有缩放显示的Direct2D WM_MOUSEMOVE消息

时间:2014-08-18 09:47:40

标签: c++ direct2d

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

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

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

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

有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

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

Creating a DPI-Aware Application