Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 捕获超过5个鼠标按钮-Windows_C++_Winapi_Button_Mouse - Fatal编程技术网

C++ 捕获超过5个鼠标按钮-Windows

C++ 捕获超过5个鼠标按钮-Windows,c++,winapi,button,mouse,C++,Winapi,Button,Mouse,我试图通过WM_RBUTTONDOWN、WM_LBUTTONDOWN和WM_MBUTTONDOWN获得比通常的3个鼠标按钮事件更多的信息。因此,我在下面的教程中使用WM_input和RAWINPUTDEVICE发现了原始输入法 但那只提供了前5个按钮的信息(包括3个常规按钮)。有人知道如何获得更多吗?如果它是一个单独的windows api解决方案,那就太好了。8个标准按钮以外的按钮依赖于供应商驱动程序提供的自定义实现。原始输入API将允许您访问驱动程序提供的信息,但它不会提供额外的解释语义。

我试图通过WM_RBUTTONDOWN、WM_LBUTTONDOWN和WM_MBUTTONDOWN获得比通常的3个鼠标按钮事件更多的信息。因此,我在下面的教程中使用WM_input和RAWINPUTDEVICE发现了原始输入法


但那只提供了前5个按钮的信息(包括3个常规按钮)。有人知道如何获得更多吗?如果它是一个单独的windows api解决方案,那就太好了。

8个标准按钮以外的按钮依赖于供应商驱动程序提供的自定义实现。原始输入API将允许您访问驱动程序提供的信息,但它不会提供额外的解释语义。有关信息,请咨询设备供应商。然而,如果这些额外的按钮实际上不是鼠标按钮,它们很可能会生成键盘输入,并被报告为键盘输入。此外,你的最后一段读错了。除了3个常规按钮(左/中/右)外,
RAWMOUSE
结构还支持5个按钮。换句话说,它将报告8个不同鼠标按钮的信息,而不仅仅是5个(我假设你暗示的)。@IInspectable:基于并查看
winuser.h
RAWMOUSE
最多可以报告5个按钮(左、中、右、x1和x2)和垂直/水平方向盘。这也与
WM_…BUTTONDOWN/UP
窗口消息一致,该窗口消息最多只支持5个按钮(左、中、右、x1和x2)。除此之外,没有更多按钮的定义/消息。你有一个可以报告超过5个按钮事件的鼠标吗?@Remy:我忽略了前3个
RI\u mouse\u BUTTON\u…
常量别名为left/middle/right BUTTON。谢谢你的更正。有超过5个按钮的设备(例如)。据我所知,额外的按钮被报告为键盘输入。