我在非模态对话框上放置了一个picture控件和一些MFC的Edit及Button控件,但是我使用下面的函数刷新
Invalidate();
UpdateWindow();
竟然不能刷新
后面发现是:
BOOL OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
return FALSE;
}
这里出了问题,我将这个函数直接返回FALSE了,造成背景不能刷新,但是把函数改回去后,
BOOL OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
return CDialog::OnEraseBkgnd(pDC);
}
背景是能够刷新了,但是我在picture控件上画矩形,有闪烁现象,暂时未解决,网上搜了下,使用双缓冲,接着测试。
后面我没有采用双缓冲,直接将画矩形的代码代码放在
pWnd->Invalidate();
pWnd->UpdateWindow();
后面,就不闪烁了。