2014-01-17 57 views
1

我已經對此進行了大量的研究。有一些程序,如Mousinity,它允許「鼠標包裝」。如果您通過另一個術語瞭解它,那麼鼠標指針將從屏幕的一側離開並出現在屏幕的另一側。在多顯示器環境下的鼠標換行

但是,所有執行此操作的程序都未能在其功能列表中包含一個關鍵元素:多顯示器設置。我厭倦了下載一個完全不同的軟件,只是爲了讓它不適合我的設置。

向下和骯髒的這個問題是這樣的:

有沒有辦法通過某種API調用的Windows來控制鼠標指針的行爲?編輯:更具體地說,API如何處理多個監視器?座標平面的原點在哪裏?

雖然我知道這將是更加複雜,這是我的僞碼,我想做的事:

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

我將重新說明這個問題。實際上,我正在尋找更多關於如何使用C++處理鼠標的信息。也就是說,使用任何API都可以幫助處理Windows上的鼠標輸入。重新閱讀我的問題,我看到那樣沒有遇到。 – b4ux1t3

+1

您需要SetWindowsHookEx()來設置低級別的鼠標掛鉤,以便您可以看到它移動。和EnumDisplayDevices()來查找監視器。 –

回答

1

原點是主顯示器的左上角。如果您將監視器放置在主監視器的左側,則該監視器上的x座標將爲負值。如果監視器位於主監視器之上或部分位於主監視器之上,則他們的y座標將在該區域爲負。

GetSystemMetrics的也有隻引用一個多顯示器系統常數。 SM_XVIRTUALSCREEN和SM_YVIRTUALSCREEN識別虛擬屏幕的左上角,SM_CXVIRTUALSCREEN和SM_CYVIRTUALSCREEN是虛擬屏幕

的垂直和水平的測量更多請看這裏:

對於你的任務,我想你可能只需要考慮虛擬屏幕座標。