C++-C++ MFC 编辑框 数据交换
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
你的使用方法不对
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直接获取整数,不过这里看你的样子是要获取浮点数,所以后边这个函数不适合
获取对话框数值在对话框调用之后,你的格式化应该在此时调用。