在考生文件夹下有一个工程文件sjt3.vbp。窗体上有个钟表图案,其中代表指针的直线的名称是IAnel,还有一个名称为Labell的标签和其他一些控件(如图1所示)。在程序运行时,若用鼠标右键单击圆的边线,则指针恢复到起始位置(如图l所示);若用鼠标左键单

admin2020-04-08  32

问题 在考生文件夹下有一个工程文件sjt3.vbp。窗体上有个钟表图案,其中代表指针的直线的名称是IAnel,还有一个名称为Labell的标签和其他一些控件(如图1所示)。在程序运行时,若用鼠标右键单击圆的边线,则指针恢复到起始位置(如图l所示);若用鼠标左键单击圆的边线,则指针指向鼠标单击的位置(如图2所示);若鼠标左键或右键单击其他位置,则在标签上输出“鼠标位置不对”。
    文件中已经给出了所有控件和程序,但程序不完整,请去掉程序中的注释符,把程序中的?改为正确的内容。程序中的oncircle函数的作用是判断鼠标单击的位置是否在圆的边线上(判断结果略有误差),是则返回True,否则返回False。符号常量x0、y0是圆心距窗体左上角的距离;符号常量radius是圆的半径。

    注意:不能修改程序中的其他部分和各控件的属性。最后将修改后的文件按原文件名存盘。

选项

答案【操作步骤】 步骤1:打开本题工程文件。 步骤2:打开代码编辑窗口,在指定位置编写如下代码。 参考答案 Const y0& =1110,x0& =1100, radius&=750 Private Function oncircle(X As Sin. gle,Y As Single)As Boolean precision=55000 If Abs((X—x0)*(X—x0)+(y0 一Y)*(y0一Y)一radius*radius)<pre— cision 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′调用oncir- cle函数判断鼠标单击的位置 Linel.Xl=x0 Linel.Y1=y0 If Button=LEFT_BUTTON Then Linel.X2=X Linel.Y2=Y ′直线另一端的Y坐标为鼠标当前的y值 Else Linel.X2=Linel.X1 ′直线回到初始位置X不变 Linel.Y2=y0一radius& ′y2为原先坐标减去半径的值 End If Labell.Caption="" Else′否则Labell显示位置不对 Labell="鼠标位王不对” End If End Sub 程序结束 步骤3:调试并运行程序,关闭程序后按题目要求存盘。

解析 Const用来设置符号常量,Function oncircle()函数则用来判断鼠标单击的位置是否在圆的边界上,通过调用Function oncircle()函数实现对鼠标单击位置的判断,如果在其他位置,则在标签上显示“鼠标位置不对”,线条的X1、Yl、X2和Y2属性用来确定指针位置和大小,Button的值用来判断是右键单击还是左键单击,确定指针指向。
转载请注明原文地址:https://kaotiyun.com/show/RATp777K
0

随机试题
最新回复(0)