MFC使用笔记-计时器

一、SetTimer(UINT_PTR nIDEvent,UINT nElapse,NULL)函数

  • nIDEvent用于识别不同计时器;
  • 调用SetTimer后,每隔nElapse毫秒,会响应一次WM_TIME的消息,调用OnTimer();
  • 若OnTimer()功能独立于计时器控制,那么即使上一次的OnTimer()没有执行完毕,依然会再次调用OnTimer();
  • 可以在OnTimer()中调用

二、KillTimer(UINT_PTR nIDEvent)函数

  • 暂停nIDEvent号计时器
  • 可以在OnTimer()中调用

三、C*Dlg::OnTimer(UINT   nIDEvent)

  • nIDEvent个数超过3个的时候,可以用switch语句代替if;
  • 计时器可以用来触发自己或别的计时器;
  • 用来做定时检测;
  • 计时器可以看做是间隔执行的循环体;
  • 单线程下,交互界面刷新有默认的间隔时间,若不分割执行略快的函数,交互界面会来不及刷新函数执行状态;

例如下面的代码

void C*Dlg::OnTimer(UINT_PTR nIDEvent)
{
	CDialogEx::OnTimer(nIDEvent);
	switch(nIDEvent)
	{
	case 1:
		KillTimer(1);
		/*add fuc*/
		SetTimer(1,100,NULL);//触发自己
		break;
	case 2:
		KillTimer(2);
		SetTimer(1,100,NULL);//触发1号计时器
		break;
	case 3:
		if(!bChange)//保持光标始终在IDC_EDIT1控件上
		{
			GetDlgItem(IDC_EDIT1)->SetFocus();
		}
		break;
	default:
		break;
	}
}

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值