二、设计界面
三、功能代码:
1、钟表:
①窗体加载过程
'设置坐标和圆心并且绘画表盘
Private Sub Form_Load()
lcdTest.NewLCD Picture1
CircleCentreX = Shape1.Left + Shape1.Width / 2
CircleCentreY = Shape1.Top + Shape1.Height / 2
CircleRadius = Shape1.Width / 2 - 40
Call DrawClockForm
End Sub'画表盘,定义控件数组,根据盘的坐标和半径来让数字准确的显示在表盘上
Private Sub DrawClockForm()
Dim ClockNumX As Integer
Dim ClockNumY As Integer
Dim Num As Integer
Dim deg As Integer
For Num = 1 To 12
deg = 90 - (Num * 30)
ClockNumX = CircleCentreX + CircleRadius * (Cos(deg * pi / 180))
ClockNumY = CircleCentreY - CircleRadius * (Sin(deg * pi / 180))
Load Label1(Num)
Label1(Num).Caption = Num
Label1(Num).Move ClockNumX - 4, ClockNumY - 7
Label1(Num).Visible = True
Next Num
End Sub
②、命令按钮控制开始和停止
Private Sub Command1_Click()
If Command1.Caption = "开始" Then
Command1.Caption = "停止"
Timer1.Enabled = True
Else
Command1.Caption = "开始"
Timer1.Enabled = False
End If
End Sub
③、timer事件:
’获取当前系统时间,并调用画三指针过程
Private Sub Timer1_Timer()
Static TimerRuning As Boolean
Static NowHour As Integer, NowMinute As Integer, NowSecond As Integer
Dim NowTime As Date
lcdTest.Caption = Time
If (TimerRuning) Then
Exit Sub
End If
If (NowSecond <> Second(Time)) Then
TimerRuning = True
NowTime = Time
NowHour = Hour(NowTime)
NowMinute = Minute(NowTime)
NowSecond = Second(NowTime)
Call DrawHour(NowHour, NowMinute, NowSecond)
Call DrawMinute(NowMinute, NowSecond)
Call DrawSecond(NowSecond)
End If
TimerRuning = False
End Sub
Public Sub DrawHour(ByVal h As Integer, ByVal m As Integer, ByVal s As Integer)
Dim d As Integer
d = 90 - (h * 30 + m / 2 + s / 120)
Line2.X1 = CircleCentreX - 7 * Cos(d * pi / 180)
Line2.Y1 = CircleCentreY + 7 * Sin(d * pi / 180)
Line2.X2 = CircleCentreX + (CircleRadius - 40) * Cos(d * pi / 180)
Line2.Y2 = CircleCentreY - (CircleRadius - 40) * Sin(d * pi / 180)
End Sub
Public Sub DrawMinute(ByVal m As Integer, ByVal s As Integer)
Dim d As Integer
d = 90 - (m * 6 + s / 10)
Line1.X1 = CircleCentreX - 8 * Cos(d * pi / 180)
Line1.Y1 = CircleCentreY + 8 * Sin(d * pi / 180)
Line1.X2 = CircleCentreX + (CircleRadius - 20) * Cos(d * pi / 180)
Line1.Y2 = CircleCentreY - (CircleRadius - 20) * Sin(d * pi / 180)
End Sub
Public Sub DrawSecond(ByVal s As Integer)
Dim d As Integer
d = 90 - s * 6
Line3.X1 = CircleCentreX - 10 * Cos(d * pi / 180)
Line3.Y1 = CircleCentreY + 10 * Sin(d * pi / 180)
Line3.X2 = CircleCentreX + (CircleRadius - 10) * Cos(d * pi / 180)
Line3.Y2 = CircleCentreY - (CircleRadius - 10) * Sin(d * pi / 180)
End Sub
2、电子表: