2013-06-02 81 views
0

我正在寫一個OpenGL/DX應用程序,其中我讀WM_INPUT消息WndProc()來移動自定義鼠標光標。系統鼠標光標在應用程序窗口上/時,通過ShowCursor(false)隱藏。如何防止自定義光標在C++應用程序中的系統鼠標光標移動?

問題是,當我移動鼠標時,系統鼠標光標仍然移動。所以這兩個遊標(正常系統遊標和我的應用程序中的自定義遊標)正在同時移動。鼠標點擊也是如此。

所以我的問題是:如何防止系統鼠標光標在應用程序運行時移動(並單擊),以便只有自定義鼠標光標功能正常?

+0

或者,您可以將自定義光標顯示在隱藏系統光標的位置。 – BlueWanderer

+0

@BlueWanderer:我認爲這不會解決我的問題。問題是系統鼠標光標在我的應用程序運行時功能完全正常。因此,當用戶在應用程序中用鼠標點擊時,點擊也是由系統鼠標光標完成的。例如,如果該系統光標位於另一個窗口的按鈕上,則該按鈕也會被點擊。這顯然不是我想要的。必須有一個「默認」的方式來處理這個問題...... – Matthias

回答

1

遊標僅用於顯示。隱藏默認光標並繪製自己的光標不會影響移動和點擊。

我想有兩種可能,你在做什麼:

  1. 如果你只是想顯示自定義光標,你應該只隱藏系統光標時,鼠標是你的窗口內。因此,當光標在窗口外時,用戶知道他/她在做什麼。或者你可以用ClipMouse來限制你的窗口內的鼠標。

  2. 如果您是用DirectInput之類的東西完全自己處理鼠標,那麼您應該使用ClipMouse。

+0

非常感謝,'ClipCursor()'(我想這就是你的意思)爲我做了詭計! – Matthias