【发布时间】:2011-11-01 07:56:40
【问题描述】:
我正在编写一个小程序来用我的 Xbox 360 控制器模拟鼠标。我已经成功实现了光标的移动,但是点击有困难。
这是我的代码的 sn-p:
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 时,按钮会闪烁,好像它被点击了一样,但是什么也没有发生。
如果有人能指出我正确的方向或提供另一种方法来做到这一点,我将不胜感激!
【问题讨论】:
标签: c++ winapi emulation device-emulation xinput