程序說(shuō)明
1.如何畫時(shí)鐘表盤上的所有直線元素?
用Load命令建立原始Line控制的14個(gè)拷貝(因?yàn)楸肀P有12個(gè)點(diǎn)和時(shí)、分、秒共15個(gè)Line),該控制數(shù)組每一個(gè)實(shí)例的端點(diǎn)坐標(biāo)屬性設(shè)置為每條線在時(shí)鐘表盤上的適當(dāng)位置。這些拷貝中大多數(shù)只放置一次,而3個(gè)Line控制每秒鐘更新一次,產(chǎn)生時(shí)鐘指針移動(dòng)的感覺。
注意:在應(yīng)用程序代碼中并沒有直接擦除任何一條線。當(dāng)我們改變每一個(gè)Line控制的端點(diǎn)時(shí),每一根針在移動(dòng)時(shí)擦除和重畫的所有技術(shù)工作都由VB來(lái)處理。
2.如何修改時(shí)針的形狀?
通過(guò)調(diào)整代碼中的屬性設(shè)置,可以改變時(shí)鐘的形狀。例如:通過(guò)改變每一個(gè)Line控制的Borderwidth屬性設(shè)置,可以建立更細(xì)或更粗的線。
3.計(jì)時(shí)器的Interval(間距)屬性設(shè)置
計(jì)時(shí)器的Interval屬性設(shè)置為100,即為1/10秒。
程序的編寫與執(zhí)行
(1)新建工程
先新建一個(gè)工程(工程類型為標(biāo)準(zhǔn)EXE),然后用“工具箱”中的工具加入一個(gè)Timer1(計(jì)時(shí)器)和line1(直線),其index(指針)分別設(shè)置為空和0。然后雙擊Form1窗體,輸入源代碼。
(2)程序源代碼
Option Explicit
DefDbl A-Z
Private Sub Form_Load()
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 = 0 To 14
’畫出表盤12個(gè)點(diǎn)和時(shí)、分、秒共15個(gè)LINE
If i > 0 Then Load Line1(i)
Line1(i).Visible = True
Line1(i).BorderWidth = 5
Line1(i).BorderColor = RGB(0, 128, 0) ’設(shè)置LINE的粗細(xì)和顏色
Next i
End If
For i = 0 To 14
Scale (-1, 1)-(1, -1)
Angle = i * 2 * Atn(1) / 3
1.如何畫時(shí)鐘表盤上的所有直線元素?
用Load命令建立原始Line控制的14個(gè)拷貝(因?yàn)楸肀P有12個(gè)點(diǎn)和時(shí)、分、秒共15個(gè)Line),該控制數(shù)組每一個(gè)實(shí)例的端點(diǎn)坐標(biāo)屬性設(shè)置為每條線在時(shí)鐘表盤上的適當(dāng)位置。這些拷貝中大多數(shù)只放置一次,而3個(gè)Line控制每秒鐘更新一次,產(chǎn)生時(shí)鐘指針移動(dòng)的感覺。
注意:在應(yīng)用程序代碼中并沒有直接擦除任何一條線。當(dāng)我們改變每一個(gè)Line控制的端點(diǎn)時(shí),每一根針在移動(dòng)時(shí)擦除和重畫的所有技術(shù)工作都由VB來(lái)處理。
2.如何修改時(shí)針的形狀?
通過(guò)調(diào)整代碼中的屬性設(shè)置,可以改變時(shí)鐘的形狀。例如:通過(guò)改變每一個(gè)Line控制的Borderwidth屬性設(shè)置,可以建立更細(xì)或更粗的線。
3.計(jì)時(shí)器的Interval(間距)屬性設(shè)置
計(jì)時(shí)器的Interval屬性設(shè)置為100,即為1/10秒。
程序的編寫與執(zhí)行
(1)新建工程
先新建一個(gè)工程(工程類型為標(biāo)準(zhǔn)EXE),然后用“工具箱”中的工具加入一個(gè)Timer1(計(jì)時(shí)器)和line1(直線),其index(指針)分別設(shè)置為空和0。然后雙擊Form1窗體,輸入源代碼。
(2)程序源代碼
Option Explicit
DefDbl A-Z
Private Sub Form_Load()
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 = 0 To 14
’畫出表盤12個(gè)點(diǎn)和時(shí)、分、秒共15個(gè)LINE
If i > 0 Then Load Line1(i)
Line1(i).Visible = True
Line1(i).BorderWidth = 5
Line1(i).BorderColor = RGB(0, 128, 0) ’設(shè)置LINE的粗細(xì)和顏色
Next i
End If
For i = 0 To 14
Scale (-1, 1)-(1, -1)
Angle = i * 2 * Atn(1) / 3

