Dlg对话框闪屏解决方法
Dlg对话框闪屏
我想查询一个变量然后改变对话框上的static控件的颜色,
在timer中查询,但是这样很闪,代码如下
应该怎么写?
如果用双缓冲,是怎么个步骤?
------解决方案--------------------
this->Invalidate(); (有没有 this 都是 用 this 这是 对话框 不是 控件)
CWnd *pWnd1=GetDlgItem(IDC_STATIC1);
pWnd1->Invalidate(); 这才是控件 !
我想查询一个变量然后改变对话框上的static控件的颜色,
在timer中查询,但是这样很闪,代码如下
void CPortDlg::OnTimer(UINT nIDEvent)
{
CRect rect1,rect2;
if (m_swi)
{
m_static1brh=CreateSolidBrush(m_redcolor);
m_static2brh=CreateSolidBrush(m_redcolor);
}
else
{
m_static1brh=CreateSolidBrush(m_bluecolor);
m_static2brh=CreateSolidBrush(m_bluecolor);
}
/*
CWnd *pWnd1=GetDlgItem(IDC_STATIC1);
pWnd1->GetClientRect(&rect1);
this->InvalidateRect(rect1,true);
//加这代码没反应,怎么改?
CWnd *pWnd2=GetDlgItem(IDC_STATIC2);
pWnd2->GetClientRect(&rect2);
this->InvalidateRect(rect2,true);
*/
this->Invalidate();
CDialog::OnTimer(nIDEvent);
}
应该怎么写?
如果用双缓冲,是怎么个步骤?
------解决方案--------------------
this->Invalidate(); (有没有 this 都是 用 this 这是 对话框 不是 控件)
CWnd *pWnd1=GetDlgItem(IDC_STATIC1);
pWnd1->Invalidate(); 这才是控件 !