MFC应用实例:[39]获得系统的时间日期
1、新建一个基于对话框的应用程序,应用程序名称为GetDataTime。
![MFC应用实例:[39]获得系统的时间日期](https://exp-picture.cdn.bcebos.com/e86ba4b842406afe3f4a0a761eee41c1b6279ff6.jpg)
2、对对话框进行如下图的设计,添加一个Data Time Picker控件和三个Static Text控件。
![MFC应用实例:[39]获得系统的时间日期](https://exp-picture.cdn.bcebos.com/430174fec314f1c56bb0ba723c27ac5307889df6.jpg)
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;}
![MFC应用实例:[39]获得系统的时间日期](https://exp-picture.cdn.bcebos.com/94af5fc1b727ac5304d76a9f2ecadce8914899f6.jpg)
4、为类CGetDataTimeDlg添加WM_TIMER消息
![MFC应用实例:[39]获得系统的时间日期](https://exp-picture.cdn.bcebos.com/b666b2530688912ca195275b1b4800fc76f797f6.jpg)
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);}
![MFC应用实例:[39]获得系统的时间日期](https://exp-picture.cdn.bcebos.com/07c98f2ca5cadce89617fb4ffcf7980e5e2095f6.jpg)
6、在初始化函数OnInitDialog()中对定时器进行初始化//程序开始获取时间显示在程序中 SYSTEMTIME time; GetSystemTime(&time); //显示系统时间 m_pickerTime = time; UpdateData(false); SetTimer(1, 1000, 0);
![MFC应用实例:[39]获得系统的时间日期](https://exp-picture.cdn.bcebos.com/91091efc77f7980e557fb8c2d4db3620b83a91f6.jpg)
7、程序运行如下:
![MFC应用实例:[39]获得系统的时间日期](https://exp-picture.cdn.bcebos.com/5e615d715fdb3620b765363aabc5260f89358df6.jpg)