分类:
2010-06-20 22:57:46
当执行到程序的某一行代码时,需要添加计时器,就用这条语句(一般在对话框初始化时设置如下):
SetTimer(1, 1000, NULL); // nIDEvent:1 , nElapse: 1000 毫秒,触发函数 空
SetTimer函数的参数如下:
UINT_PTR SetTimer(UINT_PTR nIDEvent, UINT nElapse,
void
(CALLBACK* lpfnTimer)(HWND, UINT, UINT_PTR, DWORD));
设置好后计时器立马生效,1秒后计时器发生中断,在代码所在的类中进行捕捉:
1.在该类的消息中添加:
BEGIN_MESSAGE_MAP(CTab1, CDialog) // CTab1是自己定义的一个类
//...
ON_WM_TIMER() //添加此行
//...
END_MESSAGE_MAP()
2.所在的类中添加成员函数:
void OnTimer(UINT_PTR nIDEvent);
3.添加函数的代码,即捕捉后的执行代码:
void MyTest::OnTimer(UINT_PTR nIDEvent)
{
switch
(nIDEvent)
{
case 1: //
计时器1
//
处理的代码
KillTimer(1);
// 删除此计时器
//否则计时器中断完后会自动重新开始计时,
//到下一次中断时还会发生新的中断
break;
case 2: // 计时器2
....
// 处理的代码
break;
default:
KillTimer(nIDEvent);
break;
}
}