EVC对话框下显示时间时 秒 跳动正常,分不跳动
EVC对话框下实时显示系统时间时 “秒”跳动正常,“分”不跳动,这是什么原因啊,很诡异!期待各位高手解决ing……
以下是小弟代码:
void CCheckViewDlg::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
CDialog::OnTimer(nIDEvent);
strtime=getCurrentTime();
m_ctrlInfo.SetWindowText(strtime);
}
void CCheckViewDlg::OnDestroy()
{
CDialog::OnDestroy();
// TODO: Add your message handler code here
KillTimer(1);
}
CString CCheckViewDlg::getCurrentTime()
{
TCHAR strTime[50];
CTime curtime=CTime::GetCurrentTime();
swprintf(strTime,_T("%04d-%02d-%02d %02d: %02d: %02d"),curtime.GetYear(),curtime.GetMonth(),curtime.GetDay(),curtime.GetHour(),curtime.GetMinute(),curtime.GetSecond());
CString nTime=(CString)strTime;
return nTime;
}
在initdialog类中 SetTimer(1,1000,NULL);
m_ctrlInfo是显示静态框的变量 CStatic类型。 显示 “分 ” 时偶尔会变一下,可以肯定的是跟系统时间不一致。
[解决办法]
分两步
1. 先看GetCurrentTime()得到的时间是否正确
2. 如果正确,检查显示过程
[解决办法]
我使用::GetLocalTime(&time);是没问题的,你可以试一下