
急求一个VB 时钟程序的设计心得!!!
主要过程的具体实现,要文字解释,一般出现的难题,VB此次时钟编程的学习体会!要好的话,可以多给分!...
主要过程的具体实现,要文字解释,一般出现的难题,VB此次时钟编程的学习体会!
要好的话,可以多给分! 展开
要好的话,可以多给分! 展开
2个回答
展开全部
Const RADIAN = 3.1415926 / 180 '定义了一个常量,这个常量的值为 1度的弧度值
Private Sub Form_Load()
Me.AutoRedraw = True '窗体自动重绘
Me.DrawWidth = 3 '线条的宽度
Timer1.Interval = 500 '计时器间隔 0.5秒执行一次 Timer 事件
Timer1.Enabled = True '启动计时器
End Sub
Private Sub Timer1_Timer() '计时器的Timer事件过程
Dim CurrSecond&, CurrMinute&, CurrHour& '定义了三个变量
CurrSecond = Second(Time) * 6 '获取当前秒数,并转换成相应的角度 每秒的间隔是6度
CurrMinute = Minute(Time) * 6 + CurrSecond / 60 '获取当前分数,并转换成相应的角度 每分的间隔是6度,同时+上秒带来的分针的间隔差
CurrHour = (Hour(Time) Mod 12) * 30 + CurrMinute / 12 '同上,计算时针的角度 Mod 12 是因为每12小时一圈,后面的是重复
Me.Cls '先清屏
DrawFinger CurrSecond, 1000 '调用过程,画秒针,长度为1000
DrawFinger CurrMinute, 800 '调用过程 画分针,长度为800
DrawFinger CurrHour, 500 '调用过程 画时针,长度为500
End Sub
Private Sub DrawFinger(Value As Long, Radius As Long) '画指针的过程 Value是角度,Radius长度
Dim i%
Circle (1000, 1000), 1000, vbBlack '画大圆
For i = 0 To 360 Step 30 '这个循环,在窗体上画点(标12个刻度)
PSet (1000 * Sin(RADIAN * i) + 1000, 1000 - 1000 * Cos(RADIAN * i)), vbWhite
Next i
'画指针
Line (1000, 1000)-(Radius * Sin(RADIAN * Value) + 1000, 1000 - Radius * Cos(RADIAN * Value))
End Sub
Private Sub Form_Load()
Me.AutoRedraw = True '窗体自动重绘
Me.DrawWidth = 3 '线条的宽度
Timer1.Interval = 500 '计时器间隔 0.5秒执行一次 Timer 事件
Timer1.Enabled = True '启动计时器
End Sub
Private Sub Timer1_Timer() '计时器的Timer事件过程
Dim CurrSecond&, CurrMinute&, CurrHour& '定义了三个变量
CurrSecond = Second(Time) * 6 '获取当前秒数,并转换成相应的角度 每秒的间隔是6度
CurrMinute = Minute(Time) * 6 + CurrSecond / 60 '获取当前分数,并转换成相应的角度 每分的间隔是6度,同时+上秒带来的分针的间隔差
CurrHour = (Hour(Time) Mod 12) * 30 + CurrMinute / 12 '同上,计算时针的角度 Mod 12 是因为每12小时一圈,后面的是重复
Me.Cls '先清屏
DrawFinger CurrSecond, 1000 '调用过程,画秒针,长度为1000
DrawFinger CurrMinute, 800 '调用过程 画分针,长度为800
DrawFinger CurrHour, 500 '调用过程 画时针,长度为500
End Sub
Private Sub DrawFinger(Value As Long, Radius As Long) '画指针的过程 Value是角度,Radius长度
Dim i%
Circle (1000, 1000), 1000, vbBlack '画大圆
For i = 0 To 360 Step 30 '这个循环,在窗体上画点(标12个刻度)
PSet (1000 * Sin(RADIAN * i) + 1000, 1000 - 1000 * Cos(RADIAN * i)), vbWhite
Next i
'画指针
Line (1000, 1000)-(Radius * Sin(RADIAN * Value) + 1000, 1000 - Radius * Cos(RADIAN * Value))
End Sub
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询