VC中定时器的使用
Settimer是设置一个计时器,当执行的时候,则开始执行计时器Ontimer中的代码,Ontimer是计时器所执行的代码。
Settimer是设置,Ontimer是响应Settimer消息的。
KillTimer用于停止计时器。
1.SetTimer函数的用法
1)用WM_TIMER来设置定时器
先请看SetTimer这个API函数的原型:
UINT_PTR SetTimer(
HWND hWnd,//和定时器相关联的窗口
UINT_PTR nIDEvent,//一个非0的数字标志这个定时器
UINT uElapse,//指定时间间隔,以毫秒为单位
TIMERPROC lpTimerFunc//一般指定为null
);
当在MFC的工程中表述如下:
UINT_PTR SetTimer(
UINT_PTR nIDEvent,//一个非0的数字标志这个定时器
UINT uElapse,//指定时间间隔,以毫秒为单位
TIMERPROC lpTimerFunc//一般指定为null
);
2)用法举例:
SetTimer(1,1000,NULL);
参数解释:
1:计时器的名称;
1000:时间间隔,单位是毫秒;
NULL:使用onTime函数。
在每次时间到1s时会触发WM_TIMER消息,其消息响应函数如下:
void CXXX::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
// 此处加入如下代码就好了:
switch()
{
case 1:
//做该做的事情
//当不需要的时候在此处调用KillTimer(1);
break;
default:
break;
}
CDialog::OnTimer(nIDEvent);
}
3)当不需要计时器的时候调用KillTimer(nIDEvent);
例如:KillTimer(1);
2.如果我要加入两个或者两个以上的 timer怎么办?
继续用SetTimer函数呗,上次的timer的ID是1,这次可以是2,3,4。。。。
SetTimer(2,1000,NULL);
SetTimer(3,500,NULL);
嗯,WINDOWS会协调他们的。当然onTimer函数体也要发生变化,要在函数体内添加每一个timer的处理代码:
onTimer(nIDEvent)
{
switch(nIDEvent)
{
case 1:........;
break;
case 2:.......;
break;
case 3:......;
break;
}
}
注脚:如果上述内容帮到了您或者有什么错误,而您又是注册用户的话,请不要吝惜自己的鼠标和键盘,或者留言指出,感谢支持!
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。