我正在寫一個OpenGL/DX應用程序,其中我讀WM_INPUT
消息WndProc()
來移動自定義鼠標光標。系統鼠標光標在應用程序窗口上/時,通過ShowCursor(false)
隱藏。如何防止自定義光標在C++應用程序中的系統鼠標光標移動?
問題是,當我移動鼠標時,系統鼠標光標仍然移動。所以這兩個遊標(正常系統遊標和我的應用程序中的自定義遊標)正在同時移動。鼠標點擊也是如此。
所以我的問題是:如何防止系統鼠標光標在應用程序運行時移動(並單擊),以便只有自定義鼠標光標功能正常?
我正在寫一個OpenGL/DX應用程序,其中我讀WM_INPUT
消息WndProc()
來移動自定義鼠標光標。系統鼠標光標在應用程序窗口上/時,通過ShowCursor(false)
隱藏。如何防止自定義光標在C++應用程序中的系統鼠標光標移動?
問題是,當我移動鼠標時,系統鼠標光標仍然移動。所以這兩個遊標(正常系統遊標和我的應用程序中的自定義遊標)正在同時移動。鼠標點擊也是如此。
所以我的問題是:如何防止系統鼠標光標在應用程序運行時移動(並單擊),以便只有自定義鼠標光標功能正常?
遊標僅用於顯示。隱藏默認光標並繪製自己的光標不會影響移動和點擊。
我想有兩種可能,你在做什麼:
如果你只是想顯示自定義光標,你應該只隱藏系統光標時,鼠標是你的窗口內。因此,當光標在窗口外時,用戶知道他/她在做什麼。或者你可以用ClipMouse來限制你的窗口內的鼠標。
如果您是用DirectInput之類的東西完全自己處理鼠標,那麼您應該使用ClipMouse。
非常感謝,'ClipCursor()'(我想這就是你的意思)爲我做了詭計! – Matthias
或者,您可以將自定義光標顯示在隱藏系統光標的位置。 – BlueWanderer
@BlueWanderer:我認爲這不會解決我的問題。問題是系統鼠標光標在我的應用程序運行時功能完全正常。因此,當用戶在應用程序中用鼠標點擊時,點擊也是由系統鼠標光標完成的。例如,如果該系統光標位於另一個窗口的按鈕上,則該按鈕也會被點擊。這顯然不是我想要的。必須有一個「默認」的方式來處理這個問題...... – Matthias