VB设计动画时钟
VB设计动画时钟
程序名:Sec-Time.vbp
程序类别:完整的VB程序
功能:显示一个动画时钟,该时针随着每一秒而动态变化。
程序说明
1.如何画时钟表盘上的所有直线元素?
用Load命令建立原始Line控制的14个拷贝(因为表盘有12个点和时、分、秒共15个Line),该控制数组每一个实例的端点坐标属性设置为每条线在时钟表盘上的适当位置,这些拷贝中大多数只放置一次,而3个Line控制每秒钟更新一次,产生时钟指针移动的感觉。
注意:在应用程序代码中并没有直接擦除任何一条线。当我们改变每一个Line控制的端点时,每一根针
在移动时擦除和重画的所有技术工作都由VB来处理。
2.如何修改时针的形状?
通过调整代码中的属性设置,可以改变时钟的形状。例如:通过改变每一个Line控制的Borderwidth属性设置,可以建立更细或更粗的线。
3. 计时器的Interval(间距)属性设置
计时器的Interval属性设置为100,即为1/10秒。
程序的编写与执行
(1)新建工程
先新建一个工程(工程类型为标准EXE),然后用“工具箱”中的工具加入一个Timer1(计时器)和line1(直线),其index(指针)分别设置为空和0。然后双击Form1窗体,输入源代码。
(2)程序源代码
Timer1.Interval = 100
Width = 4000
Height = 4000
Left = Screen.Width \ 2 - 2000
Top = (Screen.Height - Height) \ 2
End Sub
Private Sub Form_Resize()
Dim I, Angle
Static flag As Boolean
If flag = False Then
flag = True
For I = O To 14
'画出表盘12个点和时、分、秒共15个LINE
If I > 0 Then Load Line1(I)
Line1(I).Visible = True
Line1(I).BorderWidth = 5
Line1(I).BorderColor = RGB(0, 128, 0) '设置LINE的精细和颜色
Next I
End If
For I = 0 To 14
Scale (-1, 1)-(1, -1)
Angle = I * 2 * Atn(1) / 3
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 I
End Sub
Private Sub timer1_Timer()
Const HH = 0
Const MH = 13
Const SH = 14
Dim Angle
Static LS
If Second(Now) = LS Then Exit Sub
LS = Second(Now)
Angle = 0.5236 * (15 - (Hour(Now) + Minute(Now) / 60)) '设置时针
Line1(HH).X1 = 0
Line1(HH).Y1 = 0
Line1(HH).X2 = 0.3 * Cos(Angle)
Line1(HH).Y2 = 0.3 * Sin(Angle)
Angle = 0.1047 * (75 - (Minute(Now) + S
相关文档:
珍贵vb函数列表
Variant 变量的内部表示:
_______________________________________________________________
符号常量 值 内部表示 字节数
V_EMPTY 0 Empty
V_NULL 1 Null
V_INTEGER 2 Interger 2
V_LONG 3 Long 4
V_SINGLE 4 Single 4
V_DOUBLE 5 Double 8
V_CURRENCY 6 Currency 8
V_DATE 7 Date 8
V_STRI ......
Option Explicit
Private Declare Function LoadCursor Lib "user32.dll" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
Private Declare Function SetCursor Lib "user32.dll" (ByVal hCursor As Long) As Long
Private Const IDC_HAND As Long = 32649
Private myHand_handle ......
这年头,在这个论坛里面已经没有什么技术贴了...呵呵~发一篇惊天地,泣鬼神的帖子.当然这个只是模拟键盘的终极模拟.呵呵~
键盘是我们使用计算机的一个很重要的输入设备了,即使在鼠标大行其道的今天,很多程序依然离不开键盘来操作。但是有时候,一些重复性的,很繁琐的键盘操作总会让人疲惫,于是 ......
无意中发现VB For循环的一个特点:在循环体中,企图改变循环终止变量使之提前退出循环是徒劳的。
Private Sub Form_Load()
Dim s(0 To 4) As String
Dim N As Integer, i As Integer
s(0) = "测试1"
s(1) = "测试2"
s(2) = "测试3"
s(3) = "测试4"
s(4) = "测试5 ......