为什么用了双缓冲绘图,图像还是闪烁?
CRectrect;GetClientRect(&rect);CDCMemDC;MemDC.CreateCompatibleDC(pDC);CBitmapMemBitma...
CRect rect;
GetClientRect(&rect);
CDC MemDC;
MemDC.CreateCompatibleDC(pDC);
CBitmap MemBitmap;
MemBitmap.CreateCompatibleBitmap(pDC,rect.right,rect.bottom);
CBitmap *pOldBitmap = MemDC.SelectObject(&MemBitmap);
MemDC.FillSolidRect(0, 0, rect.right, rect.bottom, RGB(255,255,255));
然后绘图
pDC->BitBlt(0, 0, rect.right,rect.bottom, &MemDC, 0, 0, SRCCOPY);
MemDC.SelectObject(pOldBitmap);
小妹初来乍到,希望各位高手多多指教! 展开
GetClientRect(&rect);
CDC MemDC;
MemDC.CreateCompatibleDC(pDC);
CBitmap MemBitmap;
MemBitmap.CreateCompatibleBitmap(pDC,rect.right,rect.bottom);
CBitmap *pOldBitmap = MemDC.SelectObject(&MemBitmap);
MemDC.FillSolidRect(0, 0, rect.right, rect.bottom, RGB(255,255,255));
然后绘图
pDC->BitBlt(0, 0, rect.right,rect.bottom, &MemDC, 0, 0, SRCCOPY);
MemDC.SelectObject(pOldBitmap);
小妹初来乍到,希望各位高手多多指教! 展开
3个回答
展开全部
双缓存只是用来避免窗口内的局部闪烁,但避免不了整个窗口的整体闪烁.
如果使用了双缓存还是闪烁的话,就要考虑一下优化图象算法,内存的释放等等.
如果使用了双缓存还是闪烁的话,就要考虑一下优化图象算法,内存的释放等等.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
如果按楼上的方法后还是闪,只能说明你的图像太大或者电脑太烂。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
响应WM_ERASEBKGND 消息,在OnEraseBkgnd函数里直接return NULL;
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询