当前位置:编程学习 > VB >>

用VB做时钟

追问:为什么时钟上没有数字1 还有能不能把表盘和指针变小点 尤其时针太长了点 谢谢了
答案:'画一单选钮,value值为true,作为圆心,画一个圆shape1,话三更直线,时针Line1,分针Line2,秒针Line3,放一定时器Timer1,时间间隔Interval值500
'画一标签Label1,修改index值为0,这一步很重要。
'圆下面画一标签 Label2,用来显示时间
'复制以下代码

Dim X!, Y!, R!, i% '圆心,半径
Private Sub Form_Load() '窗体加载时初始化
   X = Option1.Left + 100  '圆心
   Y = Option1.Top + 100
   Line1.X1 = X   '三根针同一个圆心
   Line1.Y1 = Y
   Line2.X1 = X
   Line2.Y1 = Y
   Line3.X1 = X
   Line3.Y1 = Y
   R = 2500    '半径
   '-----圆的左上宽高----------------------------
   Shape1.Left = X - R - 200
   Shape1.Top = Y - R - 200
   Shape1.Width = 2 * R + 400
   Shape1.Height = 2 * R + 400
   '-----12个数字标签值及位置--------------------------
   For i = 0 To 11
     If i > 0 Then Load Label1(i): Label1(i).Visible = True   '复制标签
      Label1(i).Top = Y + R * Sin((i - 3) * (30 * 3.14 / 180)) '标签位置
      Label1(i).Left = X + R * Cos((i - 3) * (30 * 3.14 / 180))
      Label1(i).Caption = i      '标签文字
   Next i
   Label1(0).Caption = 12
End Sub

Private Sub Timer1_Timer() '定时器
    Dim S!, F!, M!, K As Date   '时分秒
    K = Time
    Label2.Caption = K   '显示时间
    M = Second(K)       '秒
    F = Minute(K) + M / 60 '分
    S = Hour(K) + F / 60   '时
    If S > 12 Then S = S - 12 '12小时制
    Line1.X2 = X + 0.8 * R * Cos((S - 3) * (30 * 3.14 / 180)) '时针位置
    Line1.Y2 = Y + 0.8 * R * Sin((S - 3) * (30 * 3.14 / 180))
    Line2.X2 = X + 0.9 * R * Cos((F - 15) * (6 * 3.14 / 180)) '分针位置
    Line2.Y2 = Y + 0.9 * R * Sin((F - 15) * (6 * 3.14 / 180))
    Line3.X2 = X + R * Cos((M - 15) * (6 * 3.14 / 180))  '秒针位置
    Line3.Y2 = Y + R * Sin((M - 15) * (6 * 3.14 / 180))
End Sub

上一个:简单VB程序求解,谢谢
下一个:矩阵交换的vb语言程序要具体,万分感谢!!!!!!!!!!!!!!

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,