为什么我的双缓存还会闪烁?
我在一个背景上,用键盘移动一个图片:
View的成员变量:
CDC* pMemDC;
CDC *bmp0,*bmp1,*bmp2;
int x,y;
实现:
void CNanrenView::OnDraw(CDC* pDC)
{
CNanrenDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
pDC->BitBlt(0,0,634,436,pMemDC,0,0,SRCCOPY);
}
LRESULT CNanrenView::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if (message==WM_KEYDOWN)
{
switch( wParam )
{
case 0x26:
y--;
break;
case 0x28 :
y++;
break;
case 0x25:
x--;
break;
case 0x27:
x++;
break;
}
pMemDC->BitBlt(90+x*10,90+y*10,52,52,bmp0,90+x*10,90+y*10,SRCCOPY);
pMemDC->BitBlt(100+x*10,100+y*10,32,32,bmp1,0,0,SRCCOPY);
InvalidateRect(CRect(90+x*10,90+y*10,90+x*10+52,90+y*10+52));
}
return CView::DefWindowProc(message, wParam, lParam);
}
图片再CRect(90+x*10,90+y*10,90+x*10+52,90+y*10+52)范围内还是闪烁,怎么回事?