如何用VB制作个多功能时钟
要求:一,看清楚了是VB制作,我不喜欢自作聪明的。
二,尽可能的详细,要有编码,细节,图片音乐等最佳,功能越多越好。
三,不要说和主题无关的话。
四,还没想到。
那就靠大家喽!
答案:Private Sub Check1_Click()SaveSetting "Clock", "Form", Check1.Caption, Check1.Value '保存关机选项进注册表End SubPrivate Sub Command1_Click()On Error Resume NextCommonDialog1.ShowOpen '打开对话框选择背景图片Me.Picture = LoadPicture(CommonDialog1.FileName) '设置背景图片为选择的图片SaveSetting "Clock", "Form", "BackPic", CommonDialog1.FileName '保存图片地址进注册表End SubPrivate Sub Form_Load()On Error Resume NextTimer1.Interval = 100 '100ms运行一次TIMERText1 = GetSetting("Clock", "Form", "关机Time")Check1.Value = GetSetting("Clock", "Form", Check1.Caption)Me.Picture = LoadPicture(GetSetting("Clock", "Form", "BackPic")) '读取注册表设置为背景图片WindowsMediaPlayer1.URL = " http://bbs.renshou.net/images/upload/2008/02/12/174513.wma" ''打开背景音乐End SubPrivate Sub Text1_Change()SaveSetting "Clock", "Form", "关机Time", Text1 '保存关机选项进注册表End SubPrivate Sub Timer1_Timer()Label1.Caption = Now '显示时间If Check1.Value = 1 And Format(Now, "hh:mm:ss") = Format(Text1, "hh:mm:ss") ThenShell "cmd.exe /c shutdown -f -s"End IfEnd Sub添加 Line1 Line2 Line3 Timer1
Dim xx1%, yy1% '宣告变量xx1,yy1为整型(给圆心用的)
Private Sub Form_Load()
Me.AutoRedraw = True '重画为真
'窗体置中
Me.Move (Screen.Width - Me.Width) \ 2, (Screen.Height - meiheight) \ 2
'计算圆心的x轴 xx1
xx1 = Me.Width \ 2
'计算圆心的y轴 yy1
yy1 = (Me.Height - 405) \ 2
'将下面3根针的起点x1,y1全定位在圆心上
Line1.X1 = xx1: Line1.Y1 = yy1
Line2.X1 = xx1: Line2.Y1 = yy1
Line3.X1 = xx1: Line3.Y1 = yy1
'画钟的外匡让线条粗一点
Me.DrawWidth = 5
'画一个圆
Me.Circle (xx1, yy1), 950
Line2.BorderWidth = 1 '秒针的粗度
Line2.BorderColor = QBColor(12) '秒针的颜色
Line1.BorderWidth = 2 '分针的粗度
Line1.BorderColor = QBColor(14) '分针的颜色
Line3.BorderWidth = 3 '时针的粗度
Line3.BorderColor = QBColor(10) '时针的颜色
Timer1.Interval = 500
End Sub
Private Sub Timer1_Timer()
Me.Caption = Time '标题栏显示现在时间
' Second Hand '画秒针
'计算秒针的角度,每一秒是 360度除以60秒=6度, 所以要乘上6
sdeg = Second(Time) * 6
'vb是以弧度为单位来计算,所以角度换算弧度是 3.14/180, 秒针跑了N度就乘上N
srad = (3.14 / 180) * sdeg
'900是秒针的长度,以圆心(line2的x1,y1)为准,计算出在这个弧度时line2.x2在什么位置
Line2.X2 = Line2.X1 + (900 * Sin(srad))
'900是秒针的长度,以圆心(line2的x1,y1)为准,计算出在这个弧度时line2.y2在什么位置
Line2.Y2 = Line2.Y1 - (900 * Cos(srad))
' Minute Hand '画分针
'计算分针的角度,每一分是360度除以60分=6度, 所以要乘上6,秒针动分针也会动,所以还要加上秒针移动所产生的分针移动.
'秒针转了1圈360度,分针才会前进1分钟=6度,所以比例是 6/360等于 1/60
Mdeg = Minute(Time) * 6 + (sdeg * 1 / 60)
'vb是以弧度为单位来计算,所以角度换算弧度是 3.14/180, 分针跑了N度就乘上N
mrad = (3.14 / 180) * Mdeg 'vb是以弧度为单位来计算,所以角度换算弧度是 3.14/180, 分针跑了N度就乘上N
'750是分针的长度,以圆心(line1的x1,y1)为准,计算出在这个弧度时line1.x2在什么位置
Line1.X2 = (750 * Sin(mrad)) + Line1.X1
'750是分针的长度,以圆心(line1的x1,y1)为准,计算出在这个弧度时line1.y2在什么位置
Line1.Y2 = Line1.Y1 - (750 * Cos(mrad))
' Hour Hand '画时针
'计算时针的角度,每一小时时针跑30度,分针动时针也会动,所以还要加上分针移动所产生的时针移动.
'分针转了1圈360度,时针才会前进1刻划=30度,所以比例是 30/360等于 1/12
hdeg = Hour(Time) * 30 + (Mdeg / 12)
'vb是以弧度为单位来计算,所以角度换算弧度是 3.14/180, 时针跑了N度就乘上N
hrad = (3.14 / 180) * hdeg
'500是时针的长度,以圆心(line3的x1,y1)为准,计算出在这个弧度时line3.x2在什么位置
Line3.X2 = (500 * Sin(hrad)) + Line3.X1
'500是时针的长度,以圆心(line3的x1,y1)为准,计算出在这个弧度时line3.y2在什么位置
Line3.Y2 = Line3.Y1 - (500 * Cos(hrad))
End Sub1、 显示时间 2、语音报时 3、定时报警 4、定时关机
同时我还将在文章中穿插介绍VB提供的绘图方法以及一些实用技巧,下面我们就开始吧。
阅读导航
一、如何显示时间 (1) VB时间日期函数介绍 (2) 建立实例 (3) VB绘图方法介绍 1、Line方法 2、Circle方法 3、Pset方法 4、三角函数 二、实现语音报时 (1) 使用MCI控件 (2) 相关API函数介绍 (1) GetLocalTime() (2) SYSTEMTIME结构 (3) mciExecute() (4) mciSendString() 三、实现定时关机和定时报警
上一个:vb.net文本加密与解密代码
下一个:vb编的图书馆管理系统的源代码