在考生文件夹下有一个工程文件sjt3.vbp。窗体上有个钟表图案,其中代表指针的直线的名称是Line1,还有一个名称为Label1的标签和其他一些控件(如图1所示)。在程序运行时,若用鼠标右键单击圆的边线,则指针恢复到起始位置(如图1所示);若用鼠标左键单击圆的边线,则指针指向鼠标单击的位置(如图2所示);若鼠标左键或右键单击其他位置,则在标签上输出“鼠标位置不对”。
【正确答案】[操作步骤]
步骤1:打开本题工程文件。
步骤2:打开代码编辑窗口,在指定位置编写如下代码。
参考答案
Const y0&=1110, x0&=1100, radius&=750
Private Function oncircle(X As Single, Y As Single)As Boolean
precision=55000
If Abs((X-x0)*(X-x0)+(y0-Y)*(y0-Y)-radius*radius)<precision Then '判断鼠标单击的位置是否在圆边上
oncircle=True
Else
oncircle=False
End If
End Function
Private Sub Form_MouseDown(Button As Integer, Shift as Integer, X As Single, Y As Single)
Const LEFT_BUTTON=1
If oncircle(X, Y)Then '调用oncircle函数判断鼠标单击的位置
Line1.X1=x0
Line1.Y1=y0
If Button=LEFT_BUTTON Then
Line1.X2=X
LiRe1.Y2=Y
'直线另一端的Y坐标为鼠标当前的y值
Else
Line1.X2=Line1.X1
'直线回到初始位置x不变
Line1.Y2=y0-radius&
'y2为原先坐标减去半径的值
End If
Label1.Caption=" "
Else '否则Label1显示位置不对
Label1="鼠标位置不对"
End If
End Sub
{{B}}程序结束{{/B}}
步骤3:调试并运行程序,关闭程序后按题目要求存盘。
【答案解析】[考点] 本题考点有:Const语句,Abs()函数,坐标值,线条的X1、Y1、X2和Y2属性,If判断语句以及For循环语句。
[解析] Const用米设置符号常量,Function oncircle()函数则用来判断鼠标单击的位置是否在圆的边界上,通过调用Function oncircle()函数实现对鼠标单击位置的判断,如果在其他位置,则在标签上显示“鼠标位置不对”,线条的X1、Y1、X2和Y2属性用来确定指针位置和大小,Button的值用来判断是右键单击还是左键单击,确定指针指向。