在一个按钮下写
void CClientDlg::OnButton1() 
{
// TODO: Add extra validation here
int m_nTimer =SetTimer(1,2000,NULL);  //过两秒钟触发事件
}
然后自己在CClientDlg里建一个public的OnTimer(UINT nIDEvent)函数
void CClientDlg::OnTimer(UINT nIDEvent)
{
  switch(nIDEvent)
  {
    case 1:
    AfxMessageBox("1");
    break;
    default:
    break;
   }
   CDialog::OnTimer(nIDEvent);
}为什么settimer触发不了AfxMessageBox,怎么回事?搞了半天,都不知道什么问题。

解决方案 »

  1.   

    定时器要开始就初始化,
    你要把int m_nTimer =SetTimer(1,2000,NULL);  放初始化函数中.
    在按钮里你可以设一下变量来控制它
      

  2.   

    我放在初始化函数里面也不行,SetTimer的最好一个参数是NULL,代表触发默认的OnTimer事件,我的onTimer是在CClientDlg里建一个public的OnTimer(UINT nIDEvent)函数
    ,这样做正确吗?
      

  3.   

    你还是通过消息映射来写吧。
    classwizard 里边写。
      

  4.   

    要给timer一个资源id,然后
    SetTimer(IDC_TIMER,500,NULL);