2
我試圖隱藏鼠標光標使用win32 API ShowCursor(FALSE),但在多屏幕設置時鼠標到達另一個屏幕我沒有得到任何鼠標更新在Windows中,反正有我可以防止這個?在多屏幕設置中隱藏鼠標光標
這是一個全屏視頻遊戲,我似乎沒有找到任何可以做這樣的事情的Windows API。
我試圖隱藏鼠標光標使用win32 API ShowCursor(FALSE),但在多屏幕設置時鼠標到達另一個屏幕我沒有得到任何鼠標更新在Windows中,反正有我可以防止這個?在多屏幕設置中隱藏鼠標光標
這是一個全屏視頻遊戲,我似乎沒有找到任何可以做這樣的事情的Windows API。
從我的理解,你的問題不是隱藏鼠標光標,而是限制它到你的窗口?
在這種情況下,ClipCursor
函數應該完成這項工作。
{
RECT windowRect;
GetWindowRect(hWnd, &windowRect);
ClipCursor(&windowRect);
}
對於無邊框全屏窗口,應該沒問題。如果窗口的位置或大小發生變化或窗口失去焦點,則需要重複該步驟。
對於遊戲編程,儘管可能有更好的方法,例如DirectInput,它提供了獨有的鼠標處理模式(tutorials可用),並在較低級別上爲您執行所有操作。
有一些關於處理這個問題的不同方法的討論,例如this one on the MSDN forums。
另一方面,如果您希望光標能夠離開窗口,並且只在窗口上方隱藏光標,則應該處理WM_SETCURSOR
消息並使用SetCursor
來隱藏光標。
case WM_SETCURSOR:
SetCursor(NULL);
return TRUE;