明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

VB設(shè)計(jì)動畫時(shí)鐘

[摘要]程 序 名:Sec-Time.vbp 程序類別:完整的VB程序 功 能:顯示一個(gè)動畫時(shí)鐘,該時(shí)針隨著每一秒而動態(tài)變化。 程序說明   1.如何畫時(shí)鐘表盤上的所有直線元素?   用Load命令建立原始...
程 序 名:Sec-Time.vbp
程序類別:完整的VB程序
功 能:顯示一個(gè)動畫時(shí)鐘,該時(shí)針隨著每一秒而動態(tài)變化。

程序說明

  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í)鐘指針移動的感覺。
  注意:在應(yīng)用程序代碼中并沒有直接擦除任何一條線。當(dāng)我們改變每一個(gè)Line控制的端點(diǎn)時(shí),每一根針在移動時(shí)擦除和重畫的所有技術(shù)工作都由VB來處理。

  2.如何修改時(shí)針的形狀?
  通過調(diào)整代碼中的屬性設(shè)置,可以改變時(shí)鐘的形狀。例如:通過改變每一個(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
    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))’設(shè)置時(shí)針
  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) + Second(Now) / 60))’設(shè)置分針
  Line1(MH).X1 = 0
  Line1(MH).Y1 = 0
  Line1(MH).X2 = 0.7 * Cos(Angle)
  Line1(MH).Y2 = 0.7 * Sin(Angle)
  Angle = 0.5236 * (75 - Second(Now))
  ’設(shè)置秒針
  Line1(SH).X1 = 0
  Line1(SH).Y1 = 0
  Line1(SH).X2 = 0.8 * Cos(Angle)
  Line1(SH).Y2 = 0.8 * Sin(Angle)
  form1.Caption = Str(Now())
  '窗口顯示精確的日期和數(shù)字化的時(shí)間
  End Sub

 。3)程序的編譯和執(zhí)行
  點(diǎn)擊VB“運(yùn)行”菜單中的“啟動”或“全面編譯”命令,即可對程序編譯并運(yùn)行!
  注:上述程序在中文Windows 98和 VB5.0中文企業(yè)版下調(diào)試通過。