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控件在其相应函数OnDatetimechangeDatetimepicker2()中添加一下代码:
//当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)