CBitmap bmp;
backmap.LoadBitmap(IDB_bmp1);CBitmap bmpsnake;
bmpsnake.LoadBitmap(IDB_snake);可能是这些代码使你的程序越来越慢,因为我不知道你的计时器还干了些什么,所以只能说这些

解决方案 »

  1.   

    backmap.LoadBitmap(IDB_bmp1)为笔误
    是bmp.LoadBitmap(IDB_bmp1)我加了
    bmp.DeleteObject();
    MemDC.DeleteDC();
    bmphead.DeleteObject();
    bmpsnake.DeleteObject();
    依然如故,慢!
    如果不加这些代码,定时器很好,速度很快
    还要怎么释放资源呢
      

  2.   

    CDC MemDC;
    CDC* pDC=GetDC(); CBitmap bmp;
    backmap.LoadBitmap(IDB_bmp1); if(!MemDC.CreateCompatibleDC(pDC))
    return;
    CBitmap *pOldBmp=MemDC.SelectObject(&bmp); CBitmap bmphead;
    bmphead.LoadBitmap(IDB_snakehead);
    CBrush brhead(&bmphead);
    MemDC.FillRect(CManage::snake[0],&brhead);

    CBitmap bmpsnake;
    bmpsnake.LoadBitmap(IDB_snake);
    CBrush brsnake(&bmpsnake);
    for(int i=1;i<CManage::snakecount;i++)
    MemDC.FillRect(CManage::snake[i],&brsnake); pDC->BitBlt(0,0,300,300,&MemDC,0,0,SRCCOPY);
             MemDC.SelectObject(pOldBmp);}
      

  3.   

    Hover(翔)
    能教我为什么要pOldBmp吗?
      

  4.   

    选入了任何设备的GDI资源一定要选出
     MemDc,bmp是个对象,析构时会自动DeleteObject(),无需显式调用