VB程序设计题。。求助!!

设计一个12小时这的指针式动态时钟,如图
要求:1既有动态指针,又有时、分、秒的数字显示;2单机“校时”命令按钮,用InputBox函数按照时间格式输入一个12小时制的两位的时、分、秒值,用这个时间去设置指针式动态时钟的时分针和秒针在钟面上的位置。
提示:用秒针的角度同时改变分针和时针的角度。

控件分别为picture1,text1,command1,代码如下,连刻度都给你画出来了,根据你需要可以自己添加代码:

Option Explicit

Dim HH As Integer, MM As Integer, SS As Integer

Private Sub Form_Load()
'获取系统当前时间
HH = Hour(Time)
MM = Minute(Time)
SS = Second(Time)

'画出时钟
Picture1.AutoRedraw = True
Clock HH, MM, SS

'时间显示到Text
Text1.Text = HH & ":" & MM & ":" & SS

'开启计时器
Timer1.Interval = 1000
Timer1.Enabled = True
End Sub

Private Sub Command1_Click()
'检查设置时间不能为空
If Text1.Text = "" Then
MsgBox "时间设置不能为空。"
Exit Sub
End If

'根据输入设置时间
HH = Hour(Text1.Text)
MM = Minute(Text1.Text)
SS = Second(Text1.Text)

Clock HH, MM, SS
End Sub

Private Sub Timer1_Timer()
'计时器累加计时
SS = SS + 1
If SS = 60 Then
MM = MM + 1
SS = 0
End If
If MM = 60 Then
MM = 0
HH = HH + 1
End If
If HH = 24 Then HH = 0

Clock HH, MM, SS
End Sub

Private Sub Clock(H As Integer, M As Integer, S As Integer) '根据时间画出时钟
Dim R As Integer, X As Integer, Y As Integer
Dim Arg As Single, PI As Single
Dim X1 As Integer, Y1 As Integer, X2 As Integer, Y2 As Integer
Dim I As Integer

PI = 3.1416

'根据图片框的大小自动调整时钟半径
If Picture1.Width >= Picture1.Height Then
R = Picture1.Height * 0.8 / 2
Else
R = Picture1.Width * 0.8 / 2
End If

Picture1.Cls

'时钟圆心坐标
X = Picture1.Width / 2
Y = Picture1.Height / 2

'第一步绘制圆形
Picture1.Circle (X, Y), R, vbBlue

'第二步绘制60个小刻度
For I = 1 To 60
Arg = ((I * 6) / 360) * 2 * PI
X1 = X + R * Sin(Arg)
Y1 = Y - R * Cos(Arg)
X2 = X + R * Sin(Arg) * 0.95
Y2 = Y - R * Cos(Arg) * 0.95
Picture1.Line (X1, Y1)-(X2, Y2), vbBlue
Next I

'第三步绘制12个小刻度
For I = 1 To 12
Arg = ((I * 30) / 360) * 2 * PI
X1 = X + R * Sin(Arg)
Y1 = Y - R * Cos(Arg)
X2 = X + R * Sin(Arg) * 0.9
Y2 = Y - R * Cos(Arg) * 0.9
Picture1.Line (X1, Y1)-(X2, Y2), vbRed
Next I

'第四步绘制数字刻度
Picture1.ForeColor = vbRed
For I = 1 To 12
Arg = ((I * 30) / 360) * 2 * PI
Picture1.CurrentX = X + R * Sin(Arg) * 0.8 - 80
Picture1.CurrentY = Y - R * Cos(Arg) * 0.8 - 80
Picture1.Print I
Next I

'第五步绘制时针
Arg = (((H + M / 60) * 30) / 360) * 2 * PI
X1 = X + R * Sin(Arg) * 0.4
Y1 = Y - R * Cos(Arg) * 0.4
X2 = X + R * Sin(Arg + PI) * 0.1
Y2 = Y - R * Cos(Arg + PI) * 0.1
Picture1.Line (X1, Y1)-(X2, Y2), vbBlue

'第六步绘制分针
Arg = (((M + S / 60) * 6) / 360) * 2 * PI
X1 = X + R * Sin(Arg) * 0.55
Y1 = Y - R * Cos(Arg) * 0.55
X2 = X + R * Sin(Arg + PI) * 0.1
Y2 = Y - R * Cos(Arg + PI) * 0.1
Picture1.Line (X1, Y1)-(X2, Y2), vbGreen

'第七步绘制秒针
Arg = ((S * 6) / 360) * 2 * PI
X1 = X + R * Sin(Arg) * 0.7
Y1 = Y - R * Cos(Arg) * 0.7
X2 = X + R * Sin(Arg + PI) * 0.1
Y2 = Y - R * Cos(Arg + PI) * 0.1
Picture1.Line (X1, Y1)-(X2, Y2), vbRed
End Sub

这么多的代码,你的分都给我也不错啊,嘿嘿
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-11
我已经做好了,邮箱?发给你!追问

[email protected]

第2个回答  2012-03-10
才10分 不给你
相似回答