设计一个时钟程序,利用定时器控件指针的转动

要能运行才可以... 要能运行才可以 展开
 我来答
katar1024
2008-10-20 · TA获得超过942个赞
知道小有建树答主
回答量:511
采纳率:0%
帮助的人:543万
展开全部
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
创作者6FxQkmkJYX
2020-01-20 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:30%
帮助的人:854万
展开全部
搜一下:设计一个时钟程序,利用定时器控件指针的转动
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式