【发布时间】:2015-03-13 10:09:53
【问题描述】:
我正在制作一个需要以编程方式移动鼠标指针的应用程序。 我的想法是 VC++ 2013。 我正在使用带有此功能的 winuser.h 标头:
SetCursorPos(int x, int y);
但这只会在主屏幕上移动鼠标。 对于只有一台显示器的情况,这可以正常工作。 但是,如果我处于演示模式,使用 2 台显示器,我需要将鼠标移动到第二台显示器。
所以,我需要检测是否有 2 个显示器,如果有,请将鼠标移动到第二个显示器。
【问题讨论】:
-
EnumDisplayMonitors为您提供监视器列表,并为每个监视器在虚拟桌面上占据一个矩形。然后只需将鼠标移动到位于所需监视器矩形内的坐标。 -
@IgorTandetnik 您应该将其扩展为答案。\
-
@IgorTandetnik 函数 SetCursorPos(int x, int y);可以用来在虚拟桌面移动鼠标吗?
-
是的。从概念上讲,有一个很大的桌面表面,而监视器只是这个表面的视口。您可以将鼠标移动到此桌面区域上的任何点,并且该点碰巧落入的任何监视器上都可以看到它。
-
@IgorTandetnik 感谢您的帮助,这解决了我的问题。我使用这个问题stackoverflow.com/questions/26541484/… 来获取使用 EnumDisplayMonitors 的示例。我还有一个要求,将其放入答案中,因为我已为其他用户解决了问题。
标签: c++ visual-c++