CDC MemDC;
CBitmap MemBitmap;
MemDC.CreateCompatibleDC(NULL);
MemBitmap.CreateCompatibleBitmap(pDC,450,600);
CBitmap* pOldBit;
pOldBit=MemDC.SelectObject(&MemBitmap); CBitmap bk;
bk.LoadBitmap(IDB_BITMAPBK);
CBrush bkbrush;
CBrush *oldbrush;
bkbrush.CreatePatternBrush(&bk);
oldbrush=MemDC.SelectObject(&bkbrush);
MemDC.Rectangle(0,0,450,600);
int times=pDoc->m_Array.GetSize();
for(int i=0;i<times;i++)
{
int color=((CElement*)(pDoc->m_Array.GetAt(i)))->color;
CBrush brush;
switch(color)
{
case 1:
{
brush.CreatePatternBrush(&bmp1);
break;
}
case 2:
{
brush.CreatePatternBrush(&bmp2);
break;
}
case 3:
{
brush.CreatePatternBrush(&bmp3);
break;
}
case 4:
{
brush.CreatePatternBrush(&bmp4);
break;
}
case 5:
{
brush.CreatePatternBrush(&bmp5);
break;
}
}
MemDC.SelectObject(&brush);
MemDC.Rectangle(((CElement*)(pDoc->m_Array.GetAt(i)))->rect1);
MemDC.Rectangle(((CElement*)(pDoc->m_Array.GetAt(i)))->rect2);
MemDC.Rectangle(((CElement*)(pDoc->m_Array.GetAt(i)))->rect3);
MemDC.Rectangle(((CElement*)(pDoc->m_Array.GetAt(i)))->rect4);
MemDC.SelectObject(oldbrush);
} pDC->BitBlt(0,0,450,600,&MemDC,0,0,SRCCOPY);    MemBitmap.DeleteObject();   
MemDC.DeleteDC(); 
这是ONDRAW里面的
可是为什么还闪呢????