鼠标环绕多监视器环境

时间:2014-01-17 04:26:15

标签: c++ windows mousemove

我对此进行了大量研究。有一些程序,如Mousinity,允许“鼠标包装”。如果您通过另一个术语知道它,那就是当鼠标指针离开屏幕的一侧并出现在屏幕的另一侧时。

但是,执行此操作的所有程序都未能在其功能列表中包含一个关键元素:多监视器设置。我厌倦了下载一个完全异类的软件,只是为了让它不适用于我的设置。

这个问题的问题是:

有没有办法通过Windows的某种API调用来控制鼠标指针的行为?编辑:更具体地说,API如何处理多个监视器?坐标平面的原点在哪里?

虽然我明白它会更复杂,但这是我想要做的伪代码:

if (mouse_position == side_of_screen_of_monitor1 && Mouse_is_being_moved off screen)
{    
    mouse_position == opposite_side_of_screen_of_monitor2
}

1 个答案:

答案 0 :(得分:1)

原点是主监视器的左上角。如果您将监视器放在主监视器的左侧,则该监视器上的x坐标将为负。如果监视器位于主监视器上方或部分位于主监视器上方,则该区域的y坐标将为负。

  

GetSystemMetrics还具有仅涉及Multiple Monitor系统的常量。 SM_XVIRTUALSCREEN和SM_YVIRTUALSCREEN标识虚拟屏幕的左上角,SM_CXVIRTUALSCREEN和SM_CYVIRTUALSCREEN是虚拟屏幕的垂直和水平测量值

有关详情,请参阅此处:

对于您的任务,我认为您可能只需要考虑虚拟屏幕坐标。