![]() |
1
11
(请允许我将这些事件称为鼠标上升和鼠标下降。我的MFC有点生锈。还有一个叫做.NET的东西最近把我的术语弄乱了;-) 短篇小说 :你不只是想知道鼠标点击。你需要更多。 长话短说 :
更进一步地讲,您不应该依赖于在处理鼠标下降后接收鼠标上升:用户可能已经移动了鼠标并在其他地方释放了按钮(想想拖放),在这种情况下,您不会收到鼠标上升事件。。。除非您在MouseDown上捕获鼠标,以确保即使鼠标离开您的窗口,您也能从mouse event up到mouse up。
总之 :没有鼠标点击消息只是因为你不会走得太远:无论如何,你需要处理更多的消息并实现更多的机制。
|
![]() |
2
1
我刚刚在Delphi中尝试过这个,其行为是相同的:即使双击正在发生,也会在两个事件中的第一个之后发出一个单击事件。 我用定时器解决了这个问题,它的工作原理如下:
我将计时器的间隔设置为
MSDN说:
|
![]() |
3
0
您可以检查WM_LBUTTONDOWN在WM_LBUTTONUP之前没有被多次调用。在实践中,Windows为您做到了这一点,因为如果您得到一个WM_LBUTTONDBCLK,您往往不会得到WM_LBUTTONUP。 |
![]() |
4
0
据我所知,没有办法知道这是正在发生的情况,这是有道理的——在时间到期之前,没有办法知道第二次点击是否会到来。 |
![]() |
5
0
这有点棘手。
这可能意味着您需要运行另一个线程,但我认为您可以用一个线程来完成它。 |
![]() |
6
0
我认为解决办法是在第一次单击后启动计时器&然后在下一次单击时检查经过的时间,这将告诉您是单击还是双击。 |
![]() |
7
-2
|