MFC 使用计时器

转自:http://blog.sina.com.cn/s/blog_7656589b0101g30h.html

OnTimer()函数在MFC中添加的方法:使用系统默认的回调函数,系统默认认的是onTime()函数。这个函数怎么生成的呢?你需要在需要计时器的类的生成onTime函数:在ClassWizard里,选择需要计时器的类,添加WM_TIME消息映射,就自动生成onTime函数了。然后在函数里添加代码,让代码实现功能。每隔一段时间就会自动执行一次。例: SetTimer(1,1000,NULL); 其中,1为计时器的名称; 1000为时间间隔,单位是毫秒; NULL指使用onTime函数。

UINT SetTimer(UINT nIDEvent,UINT nElapse,void(CALLBACK EXPORT *lpfnTimer)(HWND,UINT ,YINT ,DWORD))
当使用SetTimer函数的时候,就会生成一个计时器。函数中nIDEvent指的是计时器的标识,也就是名字。nElapse指的是时间间隔,也就是每隔多长时间触发一次事件。第三个参数是一个回调函数。
当不需要计时器的时候调用KillTimer(nIDEvent); 例如:KillTimer(1); 或许你会问,如果我要加入两个或者两个以上的 timer怎么办? 继续用SetTimer函数吧,上次的timer的ID是1,这次可以是2,3,4。。。。 SetTimer(2,1000,NULL); SetTimer(3,500,NULL);  当然onTimer函数体也要发生变化,要在函数体内添加每一个timer的处理代码: onTimer(nIDEvent) { switch(nIDEvent) { case 1:........; break; case 2:.......; break; case 3:......; break; } }
小技巧:可以使用#define定义不同的计时器ID值。
#define TIME_SEC 1
      #define TIME_MIN 2
     然后调用SetTimer设定两个计时器
      SetTimer (hwnd, TIMER_SEC, 1000, NULL) ;SetTimer (hwnd, TIMER_MIN, 600, NULL)


猜你喜欢

转载自blog.csdn.net/a573233077/article/details/80285185