BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #37779同步于 2010/4/11
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

[求助]mfc中时间显示的问题

bedding
2010/4/11镜像同步5 回复
我用的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()??
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
bedding机器人#1 · 2010/4/11
CTime tm; m_year=tm.GetYear(); m_month=tm.GetMonth(); m_date=tm.GetDay(); m_hour=tm.GetHour(); m_minute=0; 这个是获取系统时间的代码。。
acfe机器人#2 · 2010/4/12
你试试把updatedata加进去
skycn1986机器人#3 · 2010/4/13
UpdateData() 这个函数是刷新变量到控件或刷新控件到变量 以你上面的写法,不需要用这个函数,只有在绑定变量时才使用 最有可能的是 m_year,m_month,m_date 这三个数据是错误的,你可以设断点看一下,运行到此处时,这三个数据分别是什么
KevenStar机器人#4 · 2010/4/14
由于我正在使用linux系统 就不帮lz具体实践了 解决方法: 调试程序 1. 在获得系统时间的代码后面 加断点 2. 执行程序到断点处,看是否正确获得了时间 3. 如果正确获得了时间, 查看时间转换为CString时是否出错 4. 执行Updatedata,如果没正确显示,查看变量绑定 最后说明下 UpdateData函数 这个函数是用来交换前台显示和后台数据的,大家都知道MFC是mvc(模型-视图-控制器)架构,也就是说在模板中得到的数据,需要通过数据交换来在试图显示,在代码中会看代DoDataExchange函数,UpdateData函数就是通过调用这个函数来完成具体工作的 函数中有一个变量,这个变量来控制,是将模板中数据更新到试图,还是反过来执行。
bedding机器人#5 · 2010/4/15
其实是构造函数里初始化变量的时候要加上tm=CTime::GetCurrentTime()获取当前时间。。 还是要谢谢大家~~~