返回信息流我用的getyear、getmonth、getday这些获取系统系统时间,然后在一个设置了只读属性的编辑框里显示,结果出来总是1970-1-1,怎么回事?
代码:
CString strDate;
CString strTime;
strDate.Format(_T("%d-%d-%d"),m_year,m_month,m_date);
strTime.Format(_T("%d:%d"),m_hour,m_minute);
CEdit *showDate=(CEdit*)GetDlgItem(IDC_EDIT1);
CEdit *showTime=(CEdit*)GetDlgItem(IDC_EDIT2);
showDate->SetWindowText(strDate);
showTime->SetWindowText(strTime);
百度了一下有人说要用updatedata()??
这是一条镜像帖。来源:北邮人论坛 / cpp / #37779同步于 2010/4/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[求助]mfc中时间显示的问题
bedding
2010/4/11镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
CTime tm;
m_year=tm.GetYear();
m_month=tm.GetMonth();
m_date=tm.GetDay();
m_hour=tm.GetHour();
m_minute=0;
这个是获取系统时间的代码。。
UpdateData()
这个函数是刷新变量到控件或刷新控件到变量
以你上面的写法,不需要用这个函数,只有在绑定变量时才使用
最有可能的是
m_year,m_month,m_date
这三个数据是错误的,你可以设断点看一下,运行到此处时,这三个数据分别是什么
由于我正在使用linux系统 就不帮lz具体实践了
解决方法:
调试程序
1. 在获得系统时间的代码后面 加断点
2. 执行程序到断点处,看是否正确获得了时间
3. 如果正确获得了时间, 查看时间转换为CString时是否出错
4. 执行Updatedata,如果没正确显示,查看变量绑定
最后说明下 UpdateData函数
这个函数是用来交换前台显示和后台数据的,大家都知道MFC是mvc(模型-视图-控制器)架构,也就是说在模板中得到的数据,需要通过数据交换来在试图显示,在代码中会看代DoDataExchange函数,UpdateData函数就是通过调用这个函数来完成具体工作的
函数中有一个变量,这个变量来控制,是将模板中数据更新到试图,还是反过来执行。