2011-11-01 45 views
2

我正在編寫一個小程序來模擬我的Xbox 360控制器的鼠標。我已經成功實現了光標的移動,但是點擊有困難。使用Xbox 360控制器進行鼠標仿真

這裏是我的代碼片段:

while (msg.message != WM_QUIT) { 
    if (PeekMessage(&msg, nullptr, 0, 0, PM_REMOVE)) { 
     TranslateMessage(&msg); 
     DispatchMessage(&msg); 
    } else { 

     ...   

     if (state.Gamepad.wButtons & XINPUT_GAMEPAD_A) { 
      PostMessage(HWND_BROADCAST, WM_LBUTTONDOWN, 0, MAKEWORD(new_x, new_y)); 
     } 

     ...  
    } 
} 

我不是100%肯定這是正確的做法,但我嘗試發送WM_LBUTTONDOWN消息到所有頂級窗口時按下了一個按鈕。但是當我把鼠標放在說上,一個按鈕並按A,按鈕閃爍,就好像它被點擊,但沒有任何反應。

如果任何人都可以指出我正確的方向或提供另一種方式來做到這一點,我會非常感激!

回答

2

我認爲,而不是PostMessage,你寧可使用mouse_event API或甚至SendInput。它允許您在更抽象的層面上合成鼠標事件。