本文主要介绍:在利用MFC画图或图像显示时,有时候需要调用OnDraw()函数刷新屏幕,而屏幕往往会发生闪烁,本文主要介绍利用双缓冲解决闪屏问题。
关于闪屏方面的介绍分析见博文:
http://blog.youkuaiyun.com/longzaitianya1989/article/details/18266899
博文中关于双缓冲实现部分不够详尽,实现过程中可能会出现问题,下面再介绍一下:
1.重载OnEraseBkgnd()函数,OnEraseBkgnd对应消息WM_ERASEBKGND,修改其程序:
BOOL C***View::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
return TRUE;
return CScrollView::OnEraseBkgnd(pDC);
}
必须重载该函数并修改,不然仍会闪屏。
2.修改OnDraw()函数:
CRect ClientRect;
GetClientRect(&ClientRect); //获取客户