MFC中OnTimer定时器用法

一、     单个定时器用法

定时器工作主要流程:设置定时器SetTimer,时间到后调用OnTimer函数,关闭定时器KillTimer。可以在程序初始化用SetTimer函数弄成多个线程类似,并行进行多个函数功能。

1.1 SetTimer(H,nID,elipse,NULL)

函数作用:开始nID号定时器

H:要定时的事件句柄,在MFC中不需要该参数,因为MFC封装在CWnd类中

nID:定时器号,比如1,2,3,….125

elipse:定时时间,单位为毫秒。比如1000,则表示定时1s

NULL:回调事件,表示定时结束后,要调用的窗口函数,一般为NULL,表示定时时间到后,调用系统默认的OnTimer()事件。

例子:SetTimer(1,1000,NULL);

 

1.2 OnTimer(){…}

定时时间到后,自动调用OnTimer()函数

OnTimer()函数是在WM_ONTIMER消息处理函数中打开

打开路径:ClassWizard—Messages—ONTIMER

 

1.3 KillTimer(nID)

函数作用:取消nID号定时器

nID:与SetTimer()函数中的nID号相同

例子:KillTimer(1);

 

二、     多个定时器用法

SetTimer(1,1000,NULL);

SetTimer(2,30000,NULL);

SetTimer(3,500,NULL);

系统会自动协调,只需要在OnTimer(nID){}函数体添加判断选择语句就行

void CENetCommunicationDlg::OnTimer(UINT_PTR nIDEvent)

{

   // TODO: Add your message handler code here and/orcall defaultCOleDateTime systime = COleDateTime::GetCurrentTime();

   switch (nIDEvent)

   {

   case 1:

   {

   COleDateTime systime = COleDateTime::GetCurrentTime();

//获取系统当前时间函数

   m_SysTime =systime.Format();

   UpdateData(FALSE);

   }

      break;

 

   case 2:

   {

   MessageBox(_T("30秒显示一次"));

   }

      break;

 

   case 3:

   {

   }

      break;

 

   case 4:

   {

   }

      break;

 

   case 5:

   {

   }

      break;

 

   default:

      break;

   }

   CDialogEx::OnTimer(nIDEvent);

}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

三公子Tjq

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值