C++-C++ MFC 编辑框 数据交换

发布于 2017-01-08 02:13:35 字数 246 浏览 1350 评论 2

UpdateData(TRUE);
CString str;
str.Format("第一个数%4.1f","第二个数%4.1f",m_Num1,m_Num2);
m_Num3=m_Num1+m_Num2;
MessageBox(str);
UpdateData(FALSE);

在MessageBox(str)中str并没有显示我所输入值,只是原来初始化值。为嘛?谢谢。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

虐人心 2017-03-22 11:00:37

你的使用方法不对
str.Format("第一个数%4.1f","第二个数%4.1f",m_Num1,m_Num2);
如果m_Num1是Value形式传入,则他是个CString类型,怎么能用%f格式化呢?
如果m_Num1是Control形式传入,则更不对了,他是个CEDIT类型

首先要看你的编辑框绑定的变量方式,如果是Value则传入的是一个CString,直接可以显示,如果要转换到浮点数的话需要用atof,在显示前需要用UpdateData(true);刷新数据将值由界面传入。
UpdateData(true);
MessageBox(m_Num,m_Num,0);

如果是用Control则需要用m_Num.GetWindowText方法获取到字符串后再用atof转换
或者用GetDlgItemInt直接获取整数,不过这里看你的样子是要获取浮点数,所以后边这个函数不适合

偏爱自由 2017-02-16 12:16:28

获取对话框数值在对话框调用之后,你的格式化应该在此时调用。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文