这里对于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); }运行结果如下: