2013-01-13 38 views
0

DirectInput有一個選項可以獨享鼠標/鍵盤訪問。我現在不想使用DirectInput,並想知道如何通過使用winapi來實現相同的行爲?獨家鼠標/鍵盤與Winapi

編輯:我想我可以只使用SetCursorPos()到窗口的中間,隱藏通過一次showCursor光標()

+0

你想解決什麼問題? –

+0

防止鼠標離開窗口,暫停我的程序。 – user1334896

+0

即使按下控制atl del? –

回答

0

你有沒有看SetCapture()

如果你的問題更清楚,這將有所幫助。對應用程序缺少鼠標輸入(即WM_MOUSEMOVE消息)通常是該應用程序強大的功能。畢竟,一個完美的固定鼠標不會產生任何這樣的信息。所以我猜你正在做一些不尋常的事情。

還有一種跟蹤鼠標離開您的應用程序窗口的機制 - 請參閱here。它涉及建立一個有點痛苦的TrackMouseEvent結構,但它似乎都在我的經驗中工作。我想知道是否實際上這是暫停你的應用程序的機制?

無法提供比我提供的信息更多的恐懼。

0

使用ClipCursor()將鼠標限制在屏幕的特定矩形內,例如窗口的矩形。

1

對於鼠標,請使用Windows原始輸入API。

在您的RAWINPUTDEVICE結構中使用標誌RIDEV_CAPTUREMOUSE來調用RegisterRawInputDevices。這將防止鼠標點擊激活其他窗口。結合使用ShowCursor函數來隱藏鼠標光標。這兩件事將重現DirectInput獨佔鼠標行爲。在以後的版本中,DirectInput(用於鍵盤和鼠標)僅僅是原始輸入API的一個包裝。

我不相信有任何鍵盤上的等效控制(我不認爲在DirectInput中也有)。但是,這通常不是問題,因爲用戶將無法獲得輸入焦點到另一個應用程序,除非他們特別想用alt-tab或ctrl-alt-dlt。