static控件刷新问题???

beast78 2006-07-18 10:52:14
为了方便的更改字体和颜色,我在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);
}


请问:有什么方法可以实现控件的刷新,但又可以防止出现抖动的效果吗?????

(由于老的帐号丢失,新帐号没分了,非常抱歉)
...全文
262 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
caferd 2006-07-19
  • 打赏
  • 举报
回复
RedrawWindow试过没有?
zdcs 2006-07-18
  • 打赏
  • 举报
回复
不对,CLAbel是继承与Cstatic

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧