[原理] 使用了LINE控件用來表示指針,根據(jù)粗細(xì)不同,分別為時(shí)、分、秒針,每個(gè)LINE都有2個(gè)點(diǎn)的坐標(biāo),一個(gè)點(diǎn)是原點(diǎn),也就是表盤的最中心點(diǎn),另一個(gè)點(diǎn)根據(jù)當(dāng)前的時(shí)間計(jì)算從而決定。然后通過TIMER控件,每隔1秒計(jì)算一次進(jìn)行刷新,即可以實(shí)現(xiàn)。 [實(shí)現(xiàn)] 一、新建立一個(gè)工程,在默認(rèn)的窗體上添加以下三個(gè)LINE控件和一個(gè)TIMER控件,添加以下界面如下: 二、在代碼最上面建立全局變量,用于保存時(shí)鐘原點(diǎn): Dim x0 As Single Dim y0 As Single 三、在窗體的FORM_LOAD事件中添加如下代碼: Private Sub Form_Load() With Form1 .Width = 3000 .Height = 3100 .BackColor = vbBlack .Caption = '動(dòng)態(tài)時(shí)鐘' End With x0 = 1430 y0 = 1290 With Line1 .X1 = x0 .Y1 = y0 End With With Line2 .X1 = x0 .Y1 = y0 End With With Line3 .X1 = x0 .Y1 = y0 End With Line1.Visible = False Line2.Visible = False Line3.Visible = False Line1.BorderColor = vbRed Line2.BorderColor = vbRed Line3.BorderColor = vbRed End Sub 四、在Timer的Timer事件中添加如下代碼 Private Sub Timer1_Timer() Text1.Text = Date Line1.Visible = True Line2.Visible = True Line3.Visible = True Dim R0 As Integer R0 = 1200 R1 = 1000: R2 = 850: R3 = 600 '畫12個(gè)大圈子 For i = 1 To 12 X1 = x0 + R0 * Sin((i * 30) * 3.1415926 / 180) Y1 = y0 + R0 * Cos((i * 30) * 3.1415926 / 180) Circle (X1, Y1), 30, vbBlue Next i '畫60個(gè)小圈子 For i = 1 To 60 X1 = x0 + R0 * Sin((i * 6) * 3.1415926 / 180) Y1 = y0 + R0 * Cos((i * 6) * 3.1415926 / 180) Circle (X1, Y1), 10, vbBlue Next i '秒針 With Line1 .X2 = x0 - R3 * Sin(-(Hour(Now) * 30 + Minute(Now) * 0.5) * 3.1415926 / 180) .Y2 = y0 - R3 * Cos(-(Hour(Now) * 30 + Minute(Now) * 0.5) * 3.1415926 / 180) End With '分針 With Line2 .X2 = x0 - R2 * Sin(-(Minute(Now) * 6) * 3.1415926 / 180) .Y2 = y0 - R2 * Cos(-(Minute(Now) * 6) * 3.1415926 / 180) End With '時(shí)針 With Line3 .X2 = x0 - R1 * Sin(-(Second(Now) * 6) * 3.1415926 / 180) .Y2 = y0 - R1 * Cos(-(Second(Now) * 6) * 3.1415926 / 180) End With Circle (x0, y0), 20, vbWhite End Sub OK,至此大功告成,點(diǎn)擊F5,就可以看到運(yùn)行結(jié)果了。 源代碼下載地址: http://www./files/c3a84975-d7dc-11dc-a987-0014221f3995/ |
|