subject_24784.htm

来自「一些关于vc的问答」· HTM 代码 · 共 60 行

HTM
60
字号
<p>
序号:24784 发表者:狼来了 发表日期:2002-12-16 14:55:37
<br>主题:一个还没有解决的问题,关于定时器的问题
<br>内容:想让我的图形动画运行6S后停止,我已经设置了SetTimer(1,60,NULL);哪个有比较好的办法。只要是求时间差值,响应控件后运行6S
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:jiangweiwei 回复日期:2002-12-16 15:03:25
<br>内容:(1)是6000(不是60)<BR>(2)如果要精确计时,用WINDOWS的多媒体计时器控件
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:狼来了 回复日期:2002-12-16 15:05:11
<br>内容:我知道是6S=6000毫秒呀,但是我如何计算运行时间呢?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:疯子 回复日期:2002-12-16 15:27:24
<br>内容:只要你设置了SetTimer函数,到6S时系统会自动调用OnTimer,所以你只要在OnTimer里写处理代码就行了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:狼来了 回复日期:2002-12-16 15:29:00
<br>内容:不懂
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:jiangweiwei 回复日期:2002-12-16 15:56:56
<br>内容:SetTimer(1,6000,NULL);就是已经开始计时了,以后每隔大约6s就会发一个WM_TIMER消息,再响应该消息的处理函数进行你自己的处理即可。<BR>你在程序启动时(WM_CREATE消息)加载计时器(即SetTimer(1,6000,NULL)),也可以在你单击某一项菜单后启动。<BR>关于计算运行时间,你可以设定一个计数变量i,在OnTimer函数中用i++语句递增,此时可以判断计时时间,如i=1为6s,i=2时为12s,当i达到你想要的计时时间时,用KillTimer释放时钟。如你说的SetTimer(1,60,NULL);则计时6S,i需要达到100,如果SetTimer(1,6000,NULL);则i=1即可。<BR>但是,此时钟的硬件设计为每54.9ms“滴嗒”一次,因此Windows会将SetTimer设定的值舍入到下一个55ms的倍数,因此你设定60ms后,则每110ms响应一次,如果为6000ms,则到5995ms才响应一次,因此,在可能的情况下,将计时器设计得越大,越准确。<BR>最后,如果你要精确计时,建议用多媒体计时器。当然,你也可以在每一个小时间间隔(计时间隔)装载系统时间,同样也可达到精确计时<BR><BR>写了这么多有灌水之嫌,但我觉得很多初学者(包括我自己)一般希望越详细越好,因此管理员及高手们不要见怪
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:jiangweiwei 回复日期:2002-12-16 15:58:45
<br>内容:抱歉,是6050ms,而非5995
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:狼来了 回复日期:2002-12-16 17:20:21
<br>内容:好的,不错呀,应该没有灌水之嫌<BR>/*如果你要精确计时,建议用多媒体计时器*/<BR>我当然想精确记时了,如何用多媒体记时器呢?望告知,谢谢
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:jiangweiwei 回复日期:2002-12-16 18:56:47
<br>内容:MSDN 搜索“Using Multimedia Timers”<BR><BR>此外,还需将“Windows Multimedia library”组件加入到工程。<BR><BR>不好意思,我也没用过,不过一般象你上述的要求,用前述方法即可,对于多媒体计时器,一般多用在实时控制、MIDI等对时间要求精度较高的场合,由于计时精度更高,用多媒体计时器对系统资源要求也更多,查看MSDN应该可以搞定
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:狼来了 回复日期:2002-12-16 20:21:49
<br>内容:呵呵,我就是要进行实时控制呀
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?