Xbox360コントローラーでマウスをエミュレートする小さなプログラムを書いています。カーソルの移動は正常に実装できましたが、クリックに問題があります。
これが私のコードの抜粋です:
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%わかりませんが、 Aボタンが押されたWM_LBUTTONDOWNときにすべてのトップレベルウィンドウにメッセージを送信しようとしています。しかし、たとえばボタンの上にマウスを置いてAを押すと、ボタンがクリックされたかのように点滅しますが、何も起こりません。
誰かが私を正しい方向に向けたり、これを行うための別の方法を提供したりすることができれば、私は非常に感謝しています!