这里对于SetTimer()函数原型的定义我就不啰嗦,直接上网查。我直接贴出代码和结果。
1、首先在OnInitDialog()中添加如下代码:
// TODO: 在此添加额外的初始化代码
CTime m_time;
m_time = CTime::GetCurrentTime();
CString m_strDate;
CString m_strTime;
m_strDate = m_time.Format(_T("%x"));//格式化日期
m_strTime = m_time.Format(_T("%X"));//格式化时间
CString m_strDateTime;
m_strDateTime = m_time.Format(/*_T*/("%Y-%m-%d %H:%M:%S %A")); //格式化日期时间
UpdateData(FALSE);
//GetDlgItem(IDC_STATIC_CURR_TIME)->SetWindowText(m_strDateTime);
SetDlgItemText(IDC_EDIT_TIME, m_strDateTime);
//启动定时器
SetTimer(1, 1000, NULL);
2、然后添加定时器的WM_TIMER消息处理函数,并添加代码:
void CTest1Dlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if (1 == nIDEvent)
{
CString strTime;
CTime tm;
tm = CTime::GetCurrentTime();
strTime = tm.Format("%Y-%m-%d %H:%M:%S %A");
SetDlgItemText(IDC_EDIT_TIME, strTime); //显示系统时间
}
CDialog::OnTimer(nIDEvent);
}
运行结果如下: