CBitmap bmp;
backmap.LoadBitmap(IDB_bmp1);CBitmap bmpsnake;
bmpsnake.LoadBitmap(IDB_snake);可能是这些代码使你的程序越来越慢,因为我不知道你的计时器还干了些什么,所以只能说这些
backmap.LoadBitmap(IDB_bmp1);CBitmap bmpsnake;
bmpsnake.LoadBitmap(IDB_snake);可能是这些代码使你的程序越来越慢,因为我不知道你的计时器还干了些什么,所以只能说这些
是bmp.LoadBitmap(IDB_bmp1)我加了
bmp.DeleteObject();
MemDC.DeleteDC();
bmphead.DeleteObject();
bmpsnake.DeleteObject();
依然如故,慢!
如果不加这些代码,定时器很好,速度很快
还要怎么释放资源呢
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);}
能教我为什么要pOldBmp吗?
MemDc,bmp是个对象,析构时会自动DeleteObject(),无需显式调用