为了方便的更改字体和颜色,我在codeguru上下载了一个Clabel类,他继承于Clabel同时我要用它作为时钟显示,于是编写如下代码:
void CSAEDVSDlg::OnTimer(UINT nIDEvent) 
{
CTime now = CTime::GetCurrentTime();
//在没有用到Clabel时,下面可以,不出现抖动和未刷新,如果用Clabel类,这不能刷新,最终数字黑成一团
    //SetDlgItemText(IDC_CLOCK, now.Format("%Y - %m - %d   %I : %M : %S %p"));//mc_clock是Clabel的实例
mc_clock.SetText(now.Format("%Y - %m - %d   %I : %M : %S %p"));
// UpdateWindow();
Clabel p=(Clabel*)this->GetDlgItem(IDC_CLOCK);// p->Invalidate();//不能刷新
// p->UpdateWindow();// CRect rec;
if(::IsWindow(p->m_hWnd))
{
p->GetWindowRect(&rec);
         }
//以下代码都可以实现刷新,但是整个对话框的其他控件也在刷新,感觉抖动,效果不好
p->InvalidateRect(&rec);
this->InvalidateRect(&rec);
this->Invalidate();
CDialog::OnTimer(nIDEvent);
}
请问:有什么方法可以实现控件的刷新,但又可以防止出现抖动的效果吗?????(由于老的帐号丢失,新帐号没分了,非常抱歉)