VC中定时器的使用

网友投稿 795 2022-05-29

Settimer是设置一个计时器,当执行的时候,则开始执行计时器Ontimer中的代码,Ontimer是计时器所执行的代码。

Settimer是设置,Ontimer是响应Settimer消息的。

KillTimer用于停止计时器。

1.SetTimer函数的用法

1)用WM_TIMER来设置定时器

先请看SetTimer这个API函数的原型:

VC中定时器的使用

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小时内删除侵权内容。

上一篇:scratch列表移位 电子学会图形化编程scratch等级考试四级真题和答案解析2019
下一篇:逐层分析while((scanf("%d",&a))!=EOF)
相关文章