1、新建一个基于对话框的应用程序,应用程序名称为GetDataTime。
2、对对话框进行如下图的设计,添加一个Data Time Picker控件和三个Static Text控件。
3、双击Data Time Picker控件在其相应函数OnDatetimechangeDatetimepick髫潋啜缅er2()中添加一下代码://当Date Time Picker日期改变时void CGetDataTimeDlg::OnDatetimechangeDatetimepicker2(NMHDR* pNMHDR, LRESULT* pResult){ UpdateData(true); //日期改变了 //设置系统时间 SYSTEMTIME time; GetSystemTime(&time); //获取当前时间,填充time中的其他的值 time.wYear = m_pickerTime.GetYear(); //修改年 time.wMonth= m_pickerTime.GetMonth(); //月 time.wDay = m_pickerTime.GetDay(); //日 int f = SetSystemTime(&time); f = GetLastError(); *pResult = 0;}
4、为类CGetDataTimeDlg添加WM_TIMER消息
5、并在WM_TIMER的响应OnTimer()函数中添加一下代码:void CGetDataTimeDlg::晦倘佳鳎OnTimer(UINT_PTR nIDEvent){ // TODO: 在此添加消息处理程序代码和/或调用默认值 //获取系统时间 SYSTEMTIME st; CString strDate,strTime; GetLocalTime(&st); strDate.Format(_T("%4d-%2d-%2d"),st.wYear,st.wMonth,st.wDay); strTime.Format(_T("【%2d:%2d:%2d】"),st.wHour,st.wMinute,st.wSecond); //将时间显示在static text中 GetDlgItem(IDC_TIME)->SetWindowText(strDate + strTime); CDialog::OnTimer(nIDEvent);}
6、在初始化函数OnInitDialog()中对定时器进行初始化//程序开始获取时间显示在程序中 SYSTEMTIME time; GetSystemTime(&time); //显示系统时间 m_pickerTime = time; UpdateData(false); SetTimer(1, 1000, 0);
7、程序运行如下: