Win32:如何同时单击鼠标左键和鼠标左键

时间:2012-09-27 07:12:09

标签: c++ click mouse win32gui

我试图在用户(点击和)同时释放左右鼠标时编写特定行为。是否存在捕获此类事件/手势的已知方法。我知道如何捕获leftButtonUp和rightButtonUp,但不知道如何捕获此事件。

如果按下左按钮,然后按下延迟按下右按钮,则表示正常。当用户释放右键/左键并且如果在定义的epsilon时间内释放其他按钮后,则应该引发此类事件。

3 个答案:

答案 0 :(得分:1)

WinAPI中没有此类事件,但您可以自行跟踪。所有按钮向下/向上消息的wParam包含事件发生时所有按钮状态的信息:

MK_LBUTTON 0x0001 The left mouse button is down.
MK_MBUTTON 0x0010 The middle mouse button is down.
MK_RBUTTON 0x0002 The right mouse button is down.

因此,您需要跟踪更改并定义一个阈值,该阈值将过滤掉您想要将其视为“同时点击/释放”的所有事件

答案 1 :(得分:0)

您需要编写自己的处理方法。单击第一个按钮时记录,单击另一个按钮时查看第一个按钮是否仍然按下以及延迟是否小于您提供的任何增量。

答案 2 :(得分:0)

If GetAsyncKey(0x01) && GetAsyncKey(0x02){
DoEvent();
}