拉一个按钮控件和一个Timer控件,Timer控件Interval设为1000,Enable设为false。Private Declare Function mciSendString Lib "winmmdll" Alias "mciSendStringA" (ByVal lpstrCommand As String, ByVal lpstrRetumString As String, ByVal uReturnLength As Long, ByVal hwndCallback As Long) As Long
Dim t As Integer '计算时间
Dim s As Integer '提醒间隔时间
Dim mp3file As String 'mp3文件路径
Private Sub Command1_Click()
'停止播放
Call mciSendString("Stop " & mp3file, 0&, 0, 0)
End Sub
Private Sub Form_Load()
t = 0
s = 3 '一小时等于3600秒
mp3file = "D:\yixioump3"
Timer1Enabled = True
End Sub
Private Sub Timer1_Timer()
t = t + 1
If t = s Then
'播放音乐
Call mciSendString("Close" & mp3file, 0&, 0, 0)
Call mciSendString("Open " & mp3file, 0&, 0, 0)
Call mciSendString("play " & mp3file, 0&, 0, 0)
'切换间隔时间
If s = 3600 Then
s = 900
Else
s = 3600
End If
End If
End Sub
楼上的代码这么长,还简单?
无语
我给你写了一个,这个才是真正的简单实用,呵呵!
加个timer控件
把interval
属性调成
1000
毫秒
也就是
1秒
在加两个
text
text1text=3
text2text=00
在加个按钮
开始倒计时
就行了
程序代码如下:
private
sub
form_load()
timer1enabled
=
false
end
sub
private
sub
timer1_timer()
if
(text2text
<=
0)
then
text2text
=
59
text1text
=
text1text
-
1
else
text2text
=
text2text
-
1
end
if
end
sub
private
sub
command1_click()
timer1enabled
=
true
end
sub
如果有什么地方不懂,欢迎联系我!
楼主,我觉得你的想法是很好的创意,我也打算做一个,但奈何时间不多,就只做了个开始,以后再慢慢完善吧。在form1中添加timer1,label1,添加以下代码即可
Private Sub Form_Load()
Timer1Interval = 1000
Label1FontSize = 30
End Sub
Private Sub Timer1_Timer()
Label1Caption = Now
End Sub
你的代码有几处问题:
1
Private Sub Form_Load()
Dim nwidth, nheight, nhourlen, nminlen, nseclen '你把nmainlen打错了
Dim Picture1
这些变量是过程变量,不能再其他过程使用,且当Form_Load事件结束时,这些变量就不存在了。所以要把这些变量提前到通用区域,也就是代码的最前面。
2
Dim Picture1
这什么意思呀?我想,你是直接定义一个PictureBox控件变量,然后就能使用它。这是错误的,要么你就老实一点在窗体上添加PictureBox控件,要么你就用动态添加PictureBox控件。算了,你还是老实一点在窗体上添加PictureBox控件吧。
3
nwidth = Picture1Width - 20
nheight = Picture1Height - 10
这有问题。如果PictureBox控件的ScaleMode属性改变时,就会出现意想不到的结果了。改为如下:
nwidth = Picture1ScaleWidth
nheight = Picture1ScaleHeight
4
nminute = Minute(Time()) + nsecond / 60
nhour = (Hour(Time()) Mod 12) + nminute / 60 + nsecond / 3600
因为nminute已经包含了nsecond,所以nhour的计算就不需要再加上nsecond了,改为nhour = (Hour(Time()) Mod 12) + nminute / 60就行了。
5
carc_是什么意思呀?你自定义的函数?但你没有定义呀。
6
Picture1Line里的画线有点问题。
改成如下:
在通用区域Dim Pi As Single
在Form_Load事件Pi=31415926
在Timer1_Timer事件里:
Dim nSecond, nMinute, nHour As Integer
Dim X As Single, Y As Single
Picture1Cls
nSecond = Second(Time())
nMinute = Minute(Time()) + nSecond / 60
nHour = (Hour(Time()) Mod 12) + nMinute / 60
X = nHourlen Sin(nHour 30 / 180 Pi)
Y = nHourlen Cos(nHour 30 / 180 Pi)
Picture1DrawWidth = 3
Picture1ForeColor = RGB(255, 0, 0)
Picture1Line (nWidth / 2 - X / 10, nHeight / 2 + Y / 10)-(nWidth / 2 + X, nHeight / 2 - Y)
X = nMinlen Sin(nMinute 6 / 180 Pi)
Y = nMinlen Cos(nMinute 6 / 180 Pi)
Picture1DrawWidth = 2
Picture1ForeColor = RGB(0, 255, 0)
Picture1Line (nWidth / 2 - X / 10, nHeight / 2 + Y / 10)-(nWidth / 2 + X, nHeight / 2 - Y)
X = nSeclen Sin(nSecond 6 / 180 Pi)
Y = nSeclen Cos(nSecond 6 / 180 Pi)
Picture1DrawWidth = 1
Picture1ForeColor = RGB(0, 0, 255)
Picture1Line (nWidth / 2 - X / 10, nHeight / 2 + Y / 10)-(nWidth / 2 + X, nHeight / 2 - Y)
7
没有刻度盘。在Form_Load事件添加代码如下:
Dim i As Integer
Dim X As Single, Y As Single
Picture1AutoRedraw = True
Picture1DrawWidth = 8
Picture1ForeColor = RGB(255, 255, 0)
For i = 1 To 12
X = (nSeclen + 80) Sin(i 30 / 180 Pi)
Y = (nSeclen + 80) Cos(i 30 / 180 Pi)
Picture1PSet (nWidth / 2 + X, nHeight / 2 - Y)
X = nSeclen 12 Sin(i 30 / 180 Pi) - Picture1TextHeight(CStr(i)) / 2
Y = nSeclen 12 Cos(i 30 / 180 Pi) + Picture1TextHeight(CStr(i)) / 2
Picture1CurrentX = nWidth / 2 + X
Picture1CurrentY = nHeight / 2 - Y
Picture1Print CStr(i)
Next i
Picture1AutoRedraw = False
以上就是关于用VB编写一个闹钟程序全部的内容,包括:用VB编写一个闹钟程序、怎样用vb做倒计时时钟、如何用VB制作个多功能时钟等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)