用VB做时钟

 我来答
catwym
推荐于2016-03-13 · TA获得超过1240个赞
知道小有建树答主
回答量:671
采纳率:66%
帮助的人:570万
展开全部
'画一单选钮,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
追问
为什么时钟上没有数字1  还有能不能把表盘和指针变小点   尤其时针太长了点   谢谢了
意法半导体(中国)投资有限公司
2023-06-12 广告
单片机,单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/O)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。单片机具有性能高、速度快、体积小、价格低、稳定可靠、应用... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式