原始输入可以得到两只老鼠的数据,但是如果用户同时移动两只老鼠,我似乎只能先得到被检测到的老鼠的数据,而不能得到另一只老鼠的运动信息。
为了获取不同老鼠的鼠标信息,我就是这样做的:
PeekMessage( &msg, c_handle, WM_INPUT, WM_INPUT, PM_NOREMOVE) != 0
GetRawInputData( (HRAWINPUT)msg.lParam, RID_INPUT, lpb, &dwSize, sizeof(RAWINPUTHEADER)) != dwSize )因此,当第一鼠标句柄被窥视时,只能在第一鼠标上的操作停止之后才能检测到第二鼠标。
msdn谈到了对能够产生大量原始输入的设备使用缓冲读取。但是这种方法本身存在许多问题,只适用于单个鼠标(设备)上的多个输入。
不确定如何查看两个鼠标句柄,并在两个鼠标数据同时移动时获取它们。
发布于 2014-10-15 15:56:54
也许使用PM_NOREMOVE会引起问题。我建议使用GetMessage()或PM_REMOVE。你所描述的不应该是一个问题,因为我做了一些类似的事情,没有这个问题。
还要确保在wndproc消息末尾调用DefRawInputProc()。
https://stackoverflow.com/questions/26386069
复制相似问题