|
发表于 2012-3-28 08:21:06
|
显示全部楼层
这是我很久前做的段时钟代码,你改一下就可以用了.
'在窗体中增加一个Line1(0),一个Timer1
Option Explicit
Private Sub Form_Load()
Dim i As Integer
For i = 1 To 14
Load Line1(i)
Line1(i).Visible = True
Line1(i).BorderWidth = 5
Next
Me.Width = 6000
Me.Height = 6000
Line1(0).Visible = True
Line1(0).BorderWidth = 2
Line1(0).BorderColor = vbRed
Timer1.Interval = 1000
End Sub
Private Sub Form_Resize()
Dim Angle As Double, i As Integer
For i = 0 To 14
Scale (-1, 1)-(1, -1) '定义作标系统
Angle = i * 2 * Atn(1) / 3 'Atn 求反正切值
Line1(i).X1 = 0.9 * Cos(Angle)
Line1(i).Y1 = 0.9 * Sin(Angle)
Line1(i).X2 = Cos(Angle)
Line1(i).Y2 = Sin(Angle)
Next
Timer1.Enabled = True
End Sub
Private Sub Timer1_Timer()
Dim Angle As Double
Static LastSecond
If Second(Now) = LastSecond Then Exit Sub
LastSecond = Second(Now)
Angle = 0.5236 * (15 - (Hour(Now) + Minute(Now) / 60))
Line1(14).X1 = 0
Line1(14).Y1 = 0
Line1(14).X2 = 0.3 * Cos(Angle)
Line1(14).Y2 = 0.3 * Sin(Angle)
'分针
Angle = 0.1047 * (75 - (Minute(Now) + Second(Now) / 60))
Line1(13).X1 = 0
Line1(13).Y1 = 0
Line1(13).X2 = 0.7 * Cos(Angle)
Line1(13).Y2 = 0.7 * Sin(Angle)
'秒针
Angle = 0.1047 * (75 - Second(Now))
Line1(0).X1 = 0
Line1(0).Y1 = 0
Line1(0).X2 = 0.8 * Cos(Angle)
Line1(0).Y2 = 0.8 * Sin(Angle)
End Sub
|
|