您的位置:首页 > 其它

MFC 中设置定时器Timer的方法

2014-07-26 17:04 190 查看
在用settimer之前要知道;

1.同1个 settimer(,,)在一个循环里设置一次就行了,要是让其不断的set,是很可能执行不到ontimer()消息处理函数的,因为每次set都重新计时;

2.计时完毕,执行ontimer(),然后会重新计时的;

3.要销毁计时,用killtimer,要是想再计时,那就再settimer咯。 

下面开始:

首先,要设置定时器。

在init中(或其他的初始化函数里),调用函数

[cpp] view
plaincopy

UINT SetTimer(  

   UINT nIDEvent,//定时器标记,  

   UINT nElapse,//间隔时间  

   void ( CALLBACK* lpfnTimer ) (HWND, UINT, UINT, DWORD) = NULL   

)   



[cpp] view
plaincopy

settimer(1,2000,NULL);  

设置定时器1的间隔为2000毫秒。

 

其次,添加ontimer消息处理函数代码。

[cpp] view
plaincopy

void OnTimer(   

   UINT_PTR nIDEvent    

);  

 

在ontimer中的程序在定时器被触发的时候运行。

 

如果程序中有多个定时器,则他们共用一个ontimer消息处理程序。

在ontimer中,可以通过判断定时器标志(nIDEvent)来区分不同的定时器。

 

 

假设设置了三个定时器,标记分别为1,2,3。如

[cpp] view
plaincopy

settimer(1,2000,NULL);  

  

settimer(2,3000,NULL);  

  

settimer(3,5000,NULL);  

 

则在ontimer消息处理函数中

 

[cpp] view
plaincopy

void OnTimer(   

   UINT_PTR nIDEvent    

){  

  

switch (nIDEvent)  

  

{  

  

case 1:  

  

  //do something  

  

break;  

  

case 2:  

  

  //do something  

  

break;  

  

case 3:  

  

   //do something  

  

break;  

  

default:  

  

}  

  

}  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  定时器