
展开全部
VERSION 5.00
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 4695
ClientLeft = 60
ClientTop = 345
ClientWidth = 6495
LinkTopic = "Form1"
ScaleHeight = 4695
ScaleWidth = 6495
StartUpPosition = 3 '窗口缺省
Begin VB.Timer Timer1
Left = 2640
Top = 2160
End
Begin VB.Shape Shape1
Height = 855
Left = 4080
Shape = 3 'Circle
Top = 3120
Width = 855
End
Begin VB.Line Line3
X1 = 120
X2 = 960
Y1 = 840
Y2 = 840
End
Begin VB.Line Line2
X1 = 120
X2 = 1440
Y1 = 480
Y2 = 480
End
Begin VB.Line Line1
X1 = 120
X2 = 1920
Y1 = 240
Y2 = 240
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim HourLength As Integer
Dim MinuteLength As Integer
Dim SecondLength As Integer
Dim MidX As Integer, MidY As Integer
Const PI = 3.14159
Sub LengthAndCentre()
Dim d As Integer
If Me.ScaleWidth < Me.ScaleHeight Then
HourLength = Me.ScaleWidth * 50 / 200 '50%
MinuteLength = Me.ScaleWidth * 80 / 200 '80%
SecondLength = Me.ScaleWidth * 90 / 200 '90%
Else
HourLength = Me.ScaleHeight * 50 / 200 '50%
MinuteLength = Me.ScaleHeight * 80 / 200 '80%
SecondLength = Me.ScaleHeight * 90 / 200 '90%
End If
MidX = Me.ScaleWidth / 2
MidY = Me.ScaleHeight / 2
Line1.X1 = MidX
Line2.X1 = MidX
Line3.X1 = MidX
Line1.Y1 = MidY
Line2.Y1 = MidY
Line3.Y1 = MidY
d = Shape1.BorderWidth / 2
Shape1.Left = d
Shape1.Top = d
Shape1.Width = Me.ScaleWidth - d * 2
Shape1.Height = Me.ScaleHeight - d * 2
Call Timer1_Timer 'just to avoid flicker
End Sub
Private Sub DrawDial()
Dim I, HourX, HourY, MinuteX, MinuteY, DialLength As Integer
Me.Cls
'DialLength
If Me.ScaleWidth < Me.ScaleHeight Then
DialLength = Me.ScaleWidth * 92 / 200 '92%
Else
DialLength = Me.ScaleHeight * 92 / 200 '92%
End If
For I = 1 To 12
Me.DrawWidth = 4
HourX = DialLength * Cos(PI / 180 * (30 * I - 90)) + MidX
HourY = DialLength * Sin(PI / 180 * (30 * I - 90)) + MidY
PSet (HourX, HourY)
Next I
For I = 1 To 59
Me.DrawWidth = 2
MinuteX = DialLength * Cos(PI / 180 * (6 * I - 90)) + MidX
MinuteY = DialLength * Sin(PI / 180 * (6 * I - 90)) + MidY
PSet (MinuteX, MinuteY)
Next I
End Sub
Private Sub Form_Load()
Me.AutoRedraw = True
Me.BackColor = QBColor(10)
Shape1.BorderWidth = 4
Shape1.BackColor = vbYellow
Line1.BorderWidth = 5
Line2.BorderWidth = 3
Line3.BorderWidth = 1
Line3.BorderColor = vbRed
Timer1.Interval = 1000
Call LengthAndCentre
Call Timer1_Timer
End Sub
Private Sub Form_Resize()
On Error Resume Next
Call LengthAndCentre
Call DrawDial
End Sub
Private Sub Timer1_Timer()
Dim Hours As Single, Minutes As Single, Seconds As Single
Dim TrueHours As Single
Hours = Hour(Time)
Minutes = Minute(Time)
Seconds = Second(Time)
TrueHours = Hours + Minutes / 60
Line1.X2 = HourLength * Cos(PI / 180 * (30 * TrueHours - 90)) + MidX
Line1.Y2 = HourLength * Sin(PI / 180 * (30 * TrueHours - 90)) + MidY
Line2.X2 = MinuteLength * Cos(PI / 180 * (6 * Minutes - 90)) + MidX
Line2.Y2 = MinuteLength * Sin(PI / 180 * (6 * Minutes - 90)) + MidY
Line3.X2 = SecondLength * Cos(PI / 180 * (6 * Seconds - 90)) + MidX
Line3.Y2 = SecondLength * Sin(PI / 180 * (6 * Seconds - 90)) + MidY
End Sub
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 4695
ClientLeft = 60
ClientTop = 345
ClientWidth = 6495
LinkTopic = "Form1"
ScaleHeight = 4695
ScaleWidth = 6495
StartUpPosition = 3 '窗口缺省
Begin VB.Timer Timer1
Left = 2640
Top = 2160
End
Begin VB.Shape Shape1
Height = 855
Left = 4080
Shape = 3 'Circle
Top = 3120
Width = 855
End
Begin VB.Line Line3
X1 = 120
X2 = 960
Y1 = 840
Y2 = 840
End
Begin VB.Line Line2
X1 = 120
X2 = 1440
Y1 = 480
Y2 = 480
End
Begin VB.Line Line1
X1 = 120
X2 = 1920
Y1 = 240
Y2 = 240
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim HourLength As Integer
Dim MinuteLength As Integer
Dim SecondLength As Integer
Dim MidX As Integer, MidY As Integer
Const PI = 3.14159
Sub LengthAndCentre()
Dim d As Integer
If Me.ScaleWidth < Me.ScaleHeight Then
HourLength = Me.ScaleWidth * 50 / 200 '50%
MinuteLength = Me.ScaleWidth * 80 / 200 '80%
SecondLength = Me.ScaleWidth * 90 / 200 '90%
Else
HourLength = Me.ScaleHeight * 50 / 200 '50%
MinuteLength = Me.ScaleHeight * 80 / 200 '80%
SecondLength = Me.ScaleHeight * 90 / 200 '90%
End If
MidX = Me.ScaleWidth / 2
MidY = Me.ScaleHeight / 2
Line1.X1 = MidX
Line2.X1 = MidX
Line3.X1 = MidX
Line1.Y1 = MidY
Line2.Y1 = MidY
Line3.Y1 = MidY
d = Shape1.BorderWidth / 2
Shape1.Left = d
Shape1.Top = d
Shape1.Width = Me.ScaleWidth - d * 2
Shape1.Height = Me.ScaleHeight - d * 2
Call Timer1_Timer 'just to avoid flicker
End Sub
Private Sub DrawDial()
Dim I, HourX, HourY, MinuteX, MinuteY, DialLength As Integer
Me.Cls
'DialLength
If Me.ScaleWidth < Me.ScaleHeight Then
DialLength = Me.ScaleWidth * 92 / 200 '92%
Else
DialLength = Me.ScaleHeight * 92 / 200 '92%
End If
For I = 1 To 12
Me.DrawWidth = 4
HourX = DialLength * Cos(PI / 180 * (30 * I - 90)) + MidX
HourY = DialLength * Sin(PI / 180 * (30 * I - 90)) + MidY
PSet (HourX, HourY)
Next I
For I = 1 To 59
Me.DrawWidth = 2
MinuteX = DialLength * Cos(PI / 180 * (6 * I - 90)) + MidX
MinuteY = DialLength * Sin(PI / 180 * (6 * I - 90)) + MidY
PSet (MinuteX, MinuteY)
Next I
End Sub
Private Sub Form_Load()
Me.AutoRedraw = True
Me.BackColor = QBColor(10)
Shape1.BorderWidth = 4
Shape1.BackColor = vbYellow
Line1.BorderWidth = 5
Line2.BorderWidth = 3
Line3.BorderWidth = 1
Line3.BorderColor = vbRed
Timer1.Interval = 1000
Call LengthAndCentre
Call Timer1_Timer
End Sub
Private Sub Form_Resize()
On Error Resume Next
Call LengthAndCentre
Call DrawDial
End Sub
Private Sub Timer1_Timer()
Dim Hours As Single, Minutes As Single, Seconds As Single
Dim TrueHours As Single
Hours = Hour(Time)
Minutes = Minute(Time)
Seconds = Second(Time)
TrueHours = Hours + Minutes / 60
Line1.X2 = HourLength * Cos(PI / 180 * (30 * TrueHours - 90)) + MidX
Line1.Y2 = HourLength * Sin(PI / 180 * (30 * TrueHours - 90)) + MidY
Line2.X2 = MinuteLength * Cos(PI / 180 * (6 * Minutes - 90)) + MidX
Line2.Y2 = MinuteLength * Sin(PI / 180 * (6 * Minutes - 90)) + MidY
Line3.X2 = SecondLength * Cos(PI / 180 * (6 * Seconds - 90)) + MidX
Line3.Y2 = SecondLength * Sin(PI / 180 * (6 * Seconds - 90)) + MidY
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询