单选题 有一个名称为Fom1的窗体,上面没有控件,设有下列程序(其中方法PSet(X,Y)的功能是在坐标X、Y处画一个点):
Dim cmdmave As Boolean
Private Sub Form_MouseDown(Button As Integer,Shift As Integer,X As Single,Y As Single)
cmdmave=True
End Sub
Private Sub Form MouseMove(Button As Integer,Shift As Integer,X As Single,Y As Single)
If cmdmave Then
Form1.PSet(X,Y)
End If
End Sub
Private Sub Form_MouseUp(Button As Integer,Shift As Integer,X As Single,Y As Singgle)
cmdmave=False
End Sub
此程序的功能是______。
  • A.每按下鼠标键一次,在鼠标所指位置画一个点
  • B.按下鼠标键,则在鼠标所指位置画一个点;放开鼠标键,则此点消失
  • C.不按鼠标键而拖动鼠标,则沿鼠标拖动的轨迹画一条线
  • D.按下鼠标键并拖动鼠标,则沿鼠标拖动的轨迹画一条线,放开鼠标键则结束画线
【正确答案】 D
【答案解析】[考点] 鼠标事件和Pset方法 [解析] 鼠标事件分点击事件和状态事件:点击事件有单击(Click)和双击(DblClick),不区分左键和右键;状态事件有按下(MouseDown)、移动(MouseMove)和弹起(MouseUp),能够区分出鼠标的左键、右键和中间键。如果鼠标按钮是当其指针在窗体或控件之上时被按下并释放,则该对象将“捕获”鼠标并接收全部与该对象相关的鼠标事件。在本题代码中只涉及MouseDown、MouseMove和MouseUp3这个事件过程,其中,当按下鼠标键时触发MouseDown事件,设置布尔变量cmdmave的值为True;当释放鼠标键时触发MouseUp事件,设置变量cmdmave的值为False;当鼠标移动时触发MouseMove事件,若此时变量cmdmave的值为True(即已按下鼠标键),则在窗体鼠标指针经过的位置依次画点,从而形成一条线。