关于双缓存刷新问题
void CEREditorView::OnDraw(CDC* pDC)
{
CEREditorDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (first_time)
{
InitDB(pDC);
first_time=FALSE;
}
CRect clientRect;
GetClientRect(&clientRect);
MemDC.FillSolidRect(&clientRect,RGB(255,255,255));
CBrush* mybrush=new CBrush(GetDocument()->color_self);
CPen* pPen = new CPen(PS_SOLID,1,RGB(153,0,51));
pUpdateTool->Update(&MemDC,mybrush,pPen,nFontHeight,nFontWidth,nCurrentFont, pCommandTool->getViewOption());
delete mybrush;
delete pPen;
pDC->BitBlt(0,0,clientRect.Width(),clientRect.Height(),&MemDC,0,0,SRCCOPY);
}
void CEREditorView::InitDB(CDC *pdc)
{
CRect rect(0,0,2000,2000);
// GetClientRect(&rect);
if(!MemDC.CreateCompatibleDC(NULL))
{
::PostQuitMessage(0);
}
MemBitmap.CreateCompatibleBitmap(pdc, rect.Width(), rect.Height());
MemDC.SelectObject(MemBitmap);
}
我这么使用的双缓存,不过还有点儿闪.以前解决过,不过现在给忘了!网上搜了一下,说是要添加以下代码:
BOOL CEREditorView::OnEraseBkgnd(CDC* pDC)
{
// TODO: Add your message handler code here and/or call default
return FALSE;
return CScrollView::OnEraseBkgnd(pDC);
}
问题是,我加了以后还是有些闪烁!请高手指点一下,在此谢过了!!
...全文
相关推荐
双缓存屏幕刷新慢代码
双缓存屏幕刷新慢代码"这个问题可能涉及到多个方面,包括缓存管理、渲染效率、线程同步以及内存分配等。以下是对这些知识点的详细解释:1.
ListView双缓存DLL
最后,按照正常的VB.NET编程方式使用ListView控件,双缓存功能就会自动生效,提升界面刷新的平滑度。
vc利用双缓存处理界面刷新的实例
双缓存技术通过在内存中创建两个缓冲区来解决这个问题:一个用于绘制新的图像,另一个用于显示。
android 线程池 handler异步刷新 双缓存
这样可以确保UI操作始终在主线程中进行,避免因异步操作直接修改UI而引发的ANR(应用无响应)问题。三、异步刷新异步刷新是指在后台线程完成数据处理后,通过Handler或其他方式在主线程中更新UI。
MFC_双缓存技术解决闪屏
双缓存技术是一种在计算机图形学中用于优化动态图形显示的方法,主要用来解决窗口或图形在更新时出现的闪烁问题,特别是在使用GDI(Graphics Device Interface)或MFC(Microsoft


界面
