使用 Button 参数增强图形鼠标应用程序

可用 button 参数增强 Scribble 应用程序的功能,在本章前面的“MouseMove 事件”中已描述了该应用程序。当按下左按钮时绘制连续线,释放按钮时则停止绘制,除此之外,当用户按下右按钮时,应用程序将绘制一条从上次绘制点出发的直线。

在编写代码时,留意每个相关事件和预期响应是非常有益的。此处,三个相关事件是鼠标事件:

在窗体的声明部分声明变量 DrawNow

Dim DrawNow As Boolean

根据触发事件的按钮是左按钮还是右按钮,MouseDown 过程执行不同的操作:

Private Sub Form_MouseDown (Button As Integer, _
      Shift As Integer, X As Single, Y As Single)
   If Button = vbLeftButton Then
      DrawNow = True
      CurrentX = X
      CurrentY = Y
   ElseIf Button = vbRightButton Then
      Line -(X, Y)
   End If
End Sub

仅当释放左按钮后,MouseUp 过程才停止绘图:

Private Sub Form_MouseUp (Button As Integer, _
      Shift As Integer, X As Single, Y As Single)
   If Button = vbLeftButton Then DrawNow = False
End Sub

注意,在 MouseUp 过程中,将位设置为 1 (vbLeftButton),这个位就指出已释放鼠标左按钮,因此应停止绘图。

以下 MouseMove 过程和本章前面的“MouseMove 事件”中的 Scribble 应用程序里的过程相同。

Private Sub Form_MouseMove (Button As Integer, _
      Shift As Integer, X As Single, Y As Single)
   If DrawNow Then Line -(X, Y)
End Sub