Chinaunix首页 | 论坛 | 博客
  • 博客访问: 946563
  • 博文数量: 104
  • 博客积分: 10055
  • 博客等级: 上将
  • 技术积分: 4410
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-11 09:10
文章分类

全部博文(104)

文章存档

2012年(1)

2011年(2)

2010年(8)

2009年(38)

2008年(55)

我的朋友

分类: C/C++

2009-07-27 11:30:28

vc中timer的使用归纳
vc中timer函数可以用来处理一些对时间精度不高的时序事务,
例如超时处理,延时处理等, 字串7

该函数是窗口类特有的,不同的窗口的定时器对应所在窗体有效。
函数用法:
一、开启定时器
1,所有事务都在一个窗体内可以直接用
SetTimer(1,1000,NULL);//1表示定时器编号1,1000表示定时1000毫秒,第三个参数不清楚具体作用,可以参考msdn,一般用NULL即可。
2,如果有跨窗口事件,要关闭或设定不同的窗口的定时器,则要用下面的函数,注明对应窗口的句柄,如果是函数所在窗口,可以用this->m_hWnd:
::SetTimer(this->m_hWnd,1,0,NULL);

字串8

二、强制关闭定时器:
KillTimer(1);或::KillTimer(this->m_hWnd,1); 字串9

三、当定时器计时到点后,会激发窗体的OnTimer事件
该事件可以通过类向导添加WM_TIMER消息事件: 字串3
void CMainDlg::OnTimer(UINT nIDEvent)
{//nIDEvent 为对应的定时器编号
 // TODO: Add your message handler code here and/or call default
 switch(nIDEvent)
 {
 case 1://定时器1计时到点
  KillTimer(1);//如果这句不写,定时器一直循环
  //do something ;
  break;
 case 2://定时器2计时到点
  KillTimer(2);
  //do others;
  break;
 }
 CDialog::OnTimer(nIDEvent);
}

阅读(1854) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~