简易使用MFC中的定时器

当执行到程序的某一行代码时,需要添加计时器,就用这条语句:

SetTimer(1, 1000, NULL);

参数如下:

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 CTab1::OnTimer(UINT_PTR nIDEvent)
{
    switch (nIDEvent)
    {
    case 1:  // 计时器1
               .... // 处理的代码
               KillTimer(1);  // 删除此计时器,否则计时器中断完后会自动重新开始计时,到下一次中断时还会发生新的中断
               break;

    case 2:  // 计时器2
               .... // 处理的代码
               break;
    default:
               MessageBox("default: KillTimer");
               KillTimer(nIDEvent);
               break;
    }
}

原文地址:https://www.cnblogs.com/cxun/p/731464.html