欢迎大家光临【无师自通-教程网】您的到来是我们的荣幸。本站提供photoshop教程,ps教程,flash教程,cad教程,网页制作教程,excel教程,asp教程,vb教程,3d教程,c语言教程,html教程,coreldraw教程,dreamweaver教程,java教程,3dmax教程 等各种教程为主题的内容和服务,相信您会在这里找到您所需要的东东。无师自通伴您一生-谢谢您的光临!!
网站地图 设为首页
简繁切换 加入收藏
栏目待定 留言本站
您现在的位置: 无师自通-教程网 >> 程序设计 >> vb教程 >> 编程实例 >> 教程正文

  没有公告

教程: 用VB编写简单的时钟程序(有时、分、秒针转动) 更多...
教程: 用VB编写简单的时钟程序(有时、分、秒针转动)

原贴地址: http://bbs.bc-cn.net/bbs/dispbbs.asp?boardID=6&ID=18083&page=1

'/////////////////////////////////
'小闹钟示例
'Written By griefforyou
'在窗体中添加一个Timer控件,将Interval设为1000以下。
'////////////////////////////////

Option Explicit

Const PI = 3.1415926
Dim BaseX As Integer, BaseY As Integer, R As Integer
Dim r1 As Integer, r2 As Integer, r3 As Integer

Private Sub Form_Load()
Me.ScaleMode = 3
Me.AutoRedraw = True

If Me.Width < 3000 Then Me.Width = 3000
If Me.Height < 3000 Then Me.Height = 3000

End Sub

Private Sub Init()
Dim i As Integer

BaseX = Me.ScaleWidth / 2
BaseY = Me.ScaleHeight / 2

R = IIf(BaseX > BaseY, BaseY * 0.8, BaseY * 0.8)
r1 = R * 0.2
r2 = R * 0.1
r3 = R * 0.05

For i = 0 To 360 Step 6

If i Mod 30 = 0 Then'时
Me.DrawWidth = 2
DrawLine BaseX (R - 3) * Sin(i * PI / 180), BaseY - (R - 3) * Cos(i * PI / 180), BaseX (R - 8) * Sin(i * PI / 180), BaseY - (R - 8) * Cos(i * PI / 180), 3
Else'分
Me.DrawWidth = 2
Me.PSet (BaseX (R - 3) * Sin(i * PI / 180), BaseY - (R - 3) * Cos(i * PI / 180))
End If
Next

Me.DrawWidth = 1
Me.Circle (BaseX, BaseY), R
End Sub

'绘制指针
Private Sub DrawClock()
Dim Second As Integer
Dim Minute As Integer
Dim Hours As Integer

Second = DatePart("s", Time)
Minute = DatePart("n", Time)
Hours = DatePart("h", Time)
If Hours > 12 Then
Hours = Hours - 12
End If

Me.DrawWidth = 1
Me.Circle (BaseX, BaseY), 4

DrawLine BaseX - r1 * Sin(Second * PI / 30), BaseY r1 * Cos(Second * PI / 30), BaseX (R - 10) * Sin(Second * PI / 30), BaseY - (R - 10) * Cos(Second * PI / 30), 0
DrawLine BaseX - r2 * Sin(Minute * PI / 30), BaseY r2 * Cos(Minute * PI / 30), BaseX R * 0.8 * Sin(Minute * PI / 30), BaseY - R * 0.8 * Cos(Minute * PI / 30), 1
DrawLine BaseX - r3 * Sin((Hours Minute / 60) * PI / 6), BaseY r3 * Cos((Hours Minute / 60) * PI / 6), BaseX R * 0.6 * Sin((Hours Minute / 60) * PI / 6), BaseY - R * 0.6 * Cos((Hours Minute / 60) * PI / 6), 2
End Sub

'画线函数
Private Sub DrawLine(x1 As Integer, y1 As Integer, x2 As Integer, y2 As Integer, Flag As Integer)
Static OldSX1 As Integer, OldSX2 As Integer, OldSY1 As Integer, OldSY2 As Integer
Static OldMX1 As Integer, OldMX2 As Integer, OldMY1 As Integer, OldMY2 As Integer
Static OldHX1 As Integer, OldHX2 As Integer, OldHY1 As Integer, OldHY2 As Integer
Select Case Flag
Case 0
Me.DrawWidth = 1
Me.Line (OldSX1, OldSY1)-(OldSX2, OldSY2), Me.BackColor
Me.Line (x1, y1)-(x2, y2)
OldSX1 = x1
OldSX2 = x2
OldSY1 = y1
OldSY2 = y2
Case 1
Me.DrawWidth = 2
Me.Line (OldMX1, OldMY1)-(OldMX2, OldMY2), Me.BackColor
Me.Line (x1, y1)-(x2, y2)
OldMX1 = x1
OldMX2 = x2
OldMY1 = y1
OldMY2 = y2
Case 2
Me.DrawWidth = 3
Me.Line (OldHX1, OldHY1)-(OldHX2, OldHY2), Me.BackColor
Me.Line (x1, y1)-(x2, y2)
OldHX1 = x1
OldHX2 = x2
OldHY1 = y1
OldHY2 = y2
Case Else
Me.Line (x1, y1)-(x2, y2)
End Select
End Sub

Private Sub Form_Resize()
Me.Cls
Call Init
End Sub

Private Sub Timer1_Timer()
Call DrawClock
End Sub


教程录入:admin    责任编辑:admin 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     
     
     
     

    access基础知识
    免责声明!本站资料大部分来自于互联网,其版权归原作者或其他合法者所有.如内容涉及或侵犯了您的权益,请通知本人,我将尽快处理!.欢迎您的光临。
    辽ICP备07003958号
    无师自通,伴你一生-教程网