使用VB做秒表计时器

使用VB6.0使用timer控件计时,然后显示,可以获得毫秒位的数值吗.interval设为1我编了代码如下dimmasinterger(全局变量)m=m+1label1... 使用VB6.0 使用timer控件计时,然后显示,可以获得毫秒位的数值吗.interval设为1
我编了代码如下
dim m as interger(全局变量)
m=m+1
label1.caption=m
if m=999 then
m=0
end if
结果显示出来的只有10毫秒位的值和百毫秒位的数值和秒数位的值,次序是正确的
说明即使interval设成了1但是其实还是10毫秒1走 于是我改了代码如下 interval设成10 也就是让它10毫秒产生一个事件 一个事件里要a要循环10次 m要加10 也就是说m是1毫秒1加了
For a = 1 To 10
m = m + 1
Label1.Caption = m
If m = 999 Then
m = 0
End If
Next a
发现3位数中间的是10毫秒数最左边是摆好秒数最右边是秒数,和之前基本没区别知识次序换了换。难道说用timer是无法显示毫秒数的,有没有哪位好心人指点一下,我只是个VB初学者,复杂的方法用不来。
不要编的很复杂啊有木有还是用timer控件可以显示毫秒个位数的啊。
展开
 我来答
问问nh
2014-04-16 · TA获得超过1395个赞
知道小有建树答主
回答量:228
采纳率:0%
帮助的人:206万
展开全部
下面是一个时钟的代码,
在对象窗口需要画一个圆shape1,随便画三条线
接着运行就ok了.我试了就用一个timer和 line就行,只是要把line 在属性里改 index=0

Option Explicit
Private Sub Form_Load()
Timer1.Interval = 1000
Form1.Width = 4000
Form1.Height = 4000
Form1.Left = Screen.Width \ 2 - 2000
Form1.Top = (Screen.Height - Height) \ 2
End Sub
Private Sub Form_Resize()
Dim i, Angle
Static flag As Boolean
If flag = False Then
flag = True
'画出表盘12个点和时、分、秒共15个Line
For i = 0 To 14
If i > 0 Then Load Line1(i)'这里容易出错,要在line属性里设置index=0
Line1(i).Visible = True
Line1(i).BorderWidth = 5
Line1(i).BorderColor = RGB(0, 128, 0) '设置Line的粗细和颜色
Next i
End If
Scale (-1, 2)-(1, -2)
For i = 0 To 14
Angle = i * 2 * Atn(1) / 3
Line1(i).X1 = 0.9 * Cos(Angle)
Line1(i).Y1 = 0.9 * Sin(Angle)
Line1(i).X2 = Cos(Angle)
Line1(i).Y2 = Sin(Angle)
Next i
End Sub
Private Sub timer1_Timer()
Const HH = 0
Const MH = 13
Const SH = 14
Dim Angle
Angle = 0.5236 * (15 - (Hour(Now) + Minute(Now) / 60)) '设置时针
Line1(HH).X1 = 0
Line1(HH).Y1 = 0
Line1(HH).X2 = 0.3 * Cos(Angle)
Line1(HH).Y2 = 0.3 * Sin(Angle)
Angle = 0.1047 * (75 - (Minute(Now) + Second(Now) / 60)) '设置分针
Line1(MH).BorderWidth = 3
Line1(MH).X1 = 0
Line1(MH).Y1 = 0
Line1(MH).X2 = 0.7 * Cos(Angle)
Line1(MH).Y2 = 0.7 * Sin(Angle)
Angle = 0.1047 * (75 - Second(Now)) '设置秒针
Line1(SH).BorderWidth = 1
Line1(SH).X1 = 0
Line1(SH).Y1 = 0
Line1(SH).X2 = 0.8 * Cos(Angle)
Line1(SH).Y2 = 0.8 * Sin(Angle)
Form1.Caption = Str(Now()) '窗口显示精确的日期和数字化的时间now=date+time怎样显示星期几weekday?
End Sub
peter987662
2013-01-12 · TA获得超过1330个赞
知道小有建树答主
回答量:1117
采纳率:0%
帮助的人:1180万
展开全部
我试了你的代码,判断下来是你dim m as integer的位置放得不对,应该把它放在代码的最开始的地方。
更多追问追答
追问
我旁边不是注释了是全局变量吗,意思就是放在最前面了,你没有理解我的意思啊
追答
Dim m As Integer
Private Declare Function GetTickCount Lib "Kernel32" () As Long
Public Sub Sleep(ByVal msec As Long, Optional blnVar As Boolean = True)
Dim iTick As Long
iTick = GetTickCount
While GetTickCount - iTick < msec And blnVar
DoEvents
Wend
End Sub

Private Sub Form_Activate()
m = 0
Do While True
DoEvents
Sleep 1
m = m + 1
Label1.Caption = m
If m = 999 Then
m = 0
End If
Loop
End Sub
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
月时微123
2013-01-12 · 超过42用户采纳过TA的回答
知道答主
回答量:135
采纳率:0%
帮助的人:78.5万
展开全部
Declare Function timeGetTime Lib "winmm.dll" () As Long‘函数声明,时间精确到毫秒
dim a as long
Private Sub Form_Load()
a = timeGetTime'初始毫秒数
End Sub
'interval设为1
Private Sub Timer1_Timer()
Static c As Long
c = timeGetTime - a
Me.Text3.Text = c
If c > 999 Then
a = timeGetTime'初始毫秒数
End If
End Sub
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式