VB鼠标事件问题
窗体代码如下:OptionExplicitPrivateSubForm_MouseDown(ButtonAsInteger,ShiftAsInteger,XAsSingl...
窗体代码如下:
Option Explicit
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Debug.Print "Down=" & Button
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Debug.Print " UP=" & Button
End Sub
'程序运行后,在窗体上快速连续点击鼠标,在调试窗体中输出的结果如下:
Down=1
UP=1
UP=1
Down=1
UP=1
UP=1
Down=1
UP=1
UP=1
Down=1
UP=1
…………
按理说应该是Down->UP->Down->UP循环,但VB中的Down事件如果鼠标快速点击的话每隔一次会被丢失一次,两次点击间隔时间长时不会出现。这是什么原因,如何解决(最好不要用HOOK)
先上20分,完善解决者再加高分。
请大家说明一下怎么解决。因为我必须得到每一次的按下和弹起事件。如果仅仅说明一下是VB造成的,那等于没说。 展开
Option Explicit
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Debug.Print "Down=" & Button
End Sub
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Debug.Print " UP=" & Button
End Sub
'程序运行后,在窗体上快速连续点击鼠标,在调试窗体中输出的结果如下:
Down=1
UP=1
UP=1
Down=1
UP=1
UP=1
Down=1
UP=1
UP=1
Down=1
UP=1
…………
按理说应该是Down->UP->Down->UP循环,但VB中的Down事件如果鼠标快速点击的话每隔一次会被丢失一次,两次点击间隔时间长时不会出现。这是什么原因,如何解决(最好不要用HOOK)
先上20分,完善解决者再加高分。
请大家说明一下怎么解决。因为我必须得到每一次的按下和弹起事件。如果仅仅说明一下是VB造成的,那等于没说。 展开
3个回答
展开全部
快速连续单击,其实就是由许多双击组成,而双击就是由一次Down和两次Up事件组成的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这个很简单,因为系统有DBclick事件,鼠标双击事件
对于快速点击,只有一个Down发生,2个UP发生,这实际就行成了一个鼠标双击事件,如果跟你说的一样,是d->u->d->u这样的话,又如何区分两次单击与双击呢?
对于快速点击,只有一个Down发生,2个UP发生,这实际就行成了一个鼠标双击事件,如果跟你说的一样,是d->u->d->u这样的话,又如何区分两次单击与双击呢?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询