【问题标题】:How to move mouse to second screen monitor?如何将鼠标移动到第二个屏幕显示器?
【发布时间】: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++


【解决方案1】:

从概念上讲,鼠标在虚拟桌面上移动(并且窗口被定位) - 一个横跨所有显示器的大型桌面表面。监视器是这个表面上的一个视口 - 它显示发生在某个矩形中的任何东西。

EnumDisplayMonitors 为您提供所有监视器的列表,并为每个监视器在虚拟桌面上显示一个矩形。要将鼠标光标移动到特定监视器,只需将其移动到与该监视器对应的矩形内的一个点即可。

【讨论】:

猜你喜欢
  • 2020-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-09
  • 2020-01-19
  • 2023-01-23
相关资源
最近更新 更多