读书人

mfc 滚动条滚动图片闪烁有关问题,小弟

发布时间: 2013-06-19 10:26:41 作者: rapoo

mfc 滚动条滚动图片闪烁问题,我该怎么解决,请大家指导下。
我在Ondraw函数里面也就是给客户区添加了一张背景图片,我在用鼠标上下拖动滚动条的时候图片闪烁,我的开发工具是VS2010;以下是我的代码。

void CTestScrollView::OnDraw(CDC* pDC)
{
CTestScrollDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;

// TODO: 在此处为本机数据添加绘制代码
CRect rect;
GetClientRect(&rect);
CDC dcMem;
dcMem.CreateCompatibleDC(pDC);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAP2);

BITMAP bitmap;
bmpBackground.GetBitmap(&bitmap);
CBitmap *pbmpOld=dcMem.SelectObject(&bmpBackground);
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,SRCCOPY);
bmpBackground.DeleteObject();
dcMem.DeleteDC();
} MFC
[解决办法]


CDC dcMem;
dcMem.CreateCompatibleDC(pDC);
CBitmap bmpBackground;
bmpBackground.LoadBitmap(IDB_BITMAP2);

这段放到全局。

保证OnDraw之中只有
pDC->BitBlt(0,0,rect.Width(),rect.Height(),&dcMem,0,0,SRCCOPY);

PS:你的滚动轴要根据位置来绘制图片吧??

读书人网 >VC/MFC

热点推荐