|
采用所谓的离屏绘制。
先将所要绘制的图形,图像,文字等等
绘制到一个临时的绘图环境中
然后再将临时绘图环境绘制到屏幕上
这样可以提高绘图效率,并且不会出现闪屏
如 code:
CClientDC dc(this);
CDC offDC;
CBitmap offBitmap;
CBitmap *pOldOffBmp = NULL;
CDC bmpDC;
CBitmap aniBmp;
Cbitmap *pOldAniBmp = NULL;
offDC.CreateCompatibleDC(&dc);
offBitmap.CreateCompatibleBitmap(&dc,x,y);
pOldOffBmp = offDC.SelectObject(&offBitmap);
aniBmp.LoadBitmap(IDB_XXX);
bmpDC.CreateCompatibleDC(&offDC);
pOldAniBmp = bmpDC.SelectObject(&aniBmp);
offDC.PatBlt(0,0,x,y,WHITENESS);
TransparentImage(offDC.m_hDC,.....);
dc.Bitblt(0,0,x,y,&offDC,0,0,SRCCOPY);
bmpDC.SelectObject(pOldAniBmp);
offDC.Selectobject(pOldOffBmp);
aniBmp.DelectObject();
bmpDC.DelectDC();
offBitmap.DelectObject();
offDC.DeleteDC();
——————————————————————————
JOYZML(菜鸟朱铭雷) |
|