代码如下:在view类加变量int ituxing,并在构造函数里赋值为ituxing=0;在OnDraw(CDC* pDC)函数上添上以下语句:  void CMy1_1View::OnDraw(CDC* pDC){    CMy1_1Doc* pDoc = GetDocument();    ASSERT_VALID(pDoc);    // TODO: add draw code for native data here  //清除当前图形    CBrush mybrush1;    mybrush1.CreateSolidBrush(RGB(255,255,255));    CRect myrect1(0,0,1024,768);    pDC->FillRect(myrect1,&mybrush1);    //判断当前图形ituxing    if(ituxing==1)  //ituxing=1,画矩形           pDC->Rectangle(20,20,89,89);    else if(ituxing==2)    //ituxing=2,画圆            pDC->Ellipse(20,20,89,89);        else    //否则,画三角形           {                  pDC->MoveTo(20,20);                  pDC->LineTo(89,45);               pDC->LineTo(20,89);                  pDC->LineTo(20,20);           }}d.  添加OnTimer(UINT nIDEvent)和OnCreate(LPCREATESTRUCT lpCreateStruct),并加上语句如下:   void CMy1_1View::OnTimer(UINT nIDEvent) {        // TODO: Add your message handler code here and/or call default     //获取指针pdc     CDC *pDC=GetDC();     //调用OnDraw(pDC)重画     OnDraw(pDC);     //使ituxing循环     ituxing=(ituxing+1)%3;      CView::OnTimer(nIDEvent);} int CMy1_1View::OnCreate(LPCREATESTRUCT lpCreateStruct) {     if (CView::OnCreate(lpCreateStruct) == -1)            return -1;
     // TODO: Add your specialized creation code here     //设置更新时间     SetTimer(1, 750, NULL);     return 0;}运行结果就只显示一个三角形,不能变换其他图形。代码是网上下载的VC++游戏编程这电子书里面的!

解决方案 »

  1.   

    你在OnTimer() 函数里加断点,调试一下,看定时器消息有没有被处理?
    另外,你有没有用皮肤?
      

  2.   

    int CMy1_1View::OnCreate(LPCREATESTRUCT lpCreateStruct){
        if (CView::OnCreate(lpCreateStruct) == -1)
                return -1;
        SetTimer(1, 750, NULL);
        ituxing = 0;//  初始化一下。    return 0;} 
      void CMy1_1View::OnTimer(UINT nIDEvent){
        ituxing=(ituxing+1)%3;    //  为啥不这样写呢
        Invalidate(FALSE);    CView::OnTimer(nIDEvent);}