RegisterRawInputDevices导致不断的WM_INPUT消息

时间:2014-10-08 16:47:29

标签: c++ winapi raw-input

我们有一个传统的C ++应用程序,只需要按下操纵杆按钮(它用于脚踏控制,并对某些摄像机上的按钮按下作出反应)。在某些系统上,我们遇到的问题是,只需注册接收输入就会导致WM_INPUT消息不断泛滥。这只是窗口启动时的代码:

RAWINPUTDEVICE rid;
memset(&rid, 0, sizeof(RAWINPUTDEVICE));
rid.usUsagePage = 0x01;
rid.usUsage = 0x04;     // Joystick
rid.dwFlags = 0;
rid.hwndTarget = _hwnd;
if (RegisterRawInputDevices(&rid, 1, sizeof(RAWINPUTDEVICE)) == FALSE)
    return false;

WM_INPUT收到一堆没有数据的消息(bRawData为空)。如果我注释掉注册,一切都按预期工作(但显然没有按钮支持)。正如我所说,这并不是在所有系统上都会发生,但我们在它们发生的系统中没有发现任何共同的模式。

有没有人经历过这样的事情?

0 个答案:

没有答案