最近做一个项目中用到了SetTimer 和 Date Time Picker控件,SetTimer 是用来定时获取系统时间,Date Time Picker是用来通过他来调节系统时间的,但发现 Date Time Picker 关联一个CTime类型的成员变量时,Date Time Picker 就不能改变他的值,只要一改变他的值 后,定时时间到了,Date Time Picker 又回到初始值,所以没法通过Date Time Picker 来设置系统时间,
最开始的代码是这样写的:
CTime tm;
tm=CTime::GetCurrentTime();
m_DateTimeText=tm.Format(L"%Y-%m-%d %X");
UpdateData(FALSE);
m_DateTimeText是 Static Text 关联的一个CString类型成员变量, 这时只能显示系统时间,Date Time Picker 值 没法改变,
但通过下面的改变后,
CTime tm;
tm=CTime::GetCurrentTime();
UpdateData(TRUE);
m_DateTimeText=tm.Format(L"%Y-%m-%d %X");
UpdateData(FALSE);
一切都 解决了,可以改变Date Time Picker 的值,突然感觉到,代码还是要规范写,最开始想加上UpdateData(TRUE);但没加这句,只加UpdateData(FALSE); 也能更新 m_DateTimeText的值,就省了这句, 没法到 最后引出这么多错误, 以写代码一定要规范。