如题 想在MFC 中实现动态的时钟 怎么实现呢?定时器貌似可以解决,但是OnDraw(CDC* pDC);这个参数改怎么指定呢?

解决方案 »

  1.   

    忘了 粘过来了 呵呵~~~void CModelView::OnTimer(UINT nIDEvent) 
    {
    // TODO: Add your message handler code here and/or call default
    m_Timer--;
    CModelView::OnDraw(CDC* pDC);
    CView::OnTimer(nIDEvent);
    }error C2065: 'pDC' : undeclared identifiererror C2275: 'CDC' : illegal use of this type as an expressiond:\program files\microsoft visual studio\vc98\mfc\include\afxwin.h(636) : see declaration of 'CDC'
      

  2.   

    把一些绘制的参数设为成员变量在 OnTimer 中更新这些参数
      

  3.   

    不能在 OnTimer 中调用 OnDraw应该是调用 InvalidateRect 之类的函数是窗体重绘,自动调用 OnDraw
      

  4.   

    能否说的详细一点呢?明天就得交作业 体谅啊~~~ 谢我正是 在OnTimer中 time-- 这个变量啊?可是完事之后怎么来重画这个界面啊关键是重画这个界面的时候 出现了问题啊
      

  5.   

    OnTimer事件中不应该去重绘的...
    OnTimer里面应该只是改变变量的值...
    在OnDraw里面重绘的时候应该按照变量的值去重绘.....比如...View类里面有OnDraw和OnTimer函数,另外有m_time这个变量OnDraw函数
    {
      // ...原来的东西等等
      清屏
      按照新的m_time绘制客户区
      // ...原来的东西等等
    }
    OnTimer函数
    {
      // ...原来的东西等等
      swicth (nIDEvent)
      {
      case 每秒触发ID:
         m_time--;
         break;
      defalut:
         break;
      }
    // ...原来的东西等等
    }
      

  6.   

    OnTimer中调用Invalidate/InvalidateRect函数刷新,OnDraw中按照m_Timer绘制即可。