在控件上显示系统时间,该怎么处理

在控件上显示系统时间
C/C++ code
void CShutDownSysDlg::OnTimer(UINT nIDEvent) 
{
    // TODO: Add your message handler code here and/or call default
    if (nIDEvent==1)
    {
        CTime tm=CTime::GetCurrentTime();
        int hh=tm.GetHour();
        int mm=tm.GetMinute();
        int ss=tm.GetSecond();
        CString str="";
        str.Format("%d:%d:%d",hh,mm,ss);
        //GetDlgItem(IDC_STATIC_TIME)->SetWindowText(str);
        SetDlgItemText(IDC_STATIC_TIME,str);
    }
    CDialog::OnTimer(nIDEvent);
}

我设置的间隔时间是1秒,可是在控件上显示的时候老是在闪,就好像不停的刷新,

可是我看别人的程序都不闪啊,这是怎么回事呢??

------解决方案--------------------
好像是要设置一个定时器什么的吧 你这个不是一秒刷新一次吧
------解决方案--------------------
你设置的是1ms还是1s刷新一次??50ms都不闪,1s还会闪吗??
SetTimer(1, 50, NULL);你试试看?
格式化时间字符串这样是不是好点:
str.Format("%02d:%02d:%02d",hh,mm,ss);