请问在MFC中怎么用定时器?好象在CFrameWnd类和CWnd类中的SetTimer函数不同,如果我想在View里同步显示时间该怎么整呢?

解决方案 »

  1.   

    1  在视图中添加函数OnInitialUpdate()
       SetTimer(1,1000,NULL);//定义定时器
    2  在视图中添加WM_TIMER消息
       OnTimer(UINT nIDEvent) 函数中加
      { 
      Invalidate();  }
    3  OnDraw(CDC* pDC)函数中加
      {
             CString strTime;
    CTime Tm=CTime::GetCurrentTime();
             strTime.Format("%.2d年%.2d月%.2d日%.2d:%.2d:%.2d",Tm.GetYear(),
             Tm.GetMonth(),Tm.GetDay(),Tm.GetHour(),Tm.GetMinute(),Tm.GetSecond());
             pDC->TextOut(50,50,strTime);   }
    测试成功
      

  2.   

    不要忘了最后在OnClose或者OnDestroy中调用:
    KillTimer(1);
      

  3.   

    哈哈,问得好问得好,要是不调用KillTimer就没有关闭定时器咯,可能会造成资源泄漏吧
      

  4.   

    ontimer()
    {
          //定时器里面需要做的工作
    }
    settimer() 设置定时器的时间间隔和运行函数最后killtimer()杀掉定时器防止资源泄漏
      

  5.   


    加上控制函数:
    timerflag=!timerflag;
    if(timerflag)
    SetTimer(1,1000,NULL);
    else
    KillTimer(1);