vs2005 mfc 遇到问题,求助edit control的用法

buding000001 2013-03-27 01:16:08
用mfc制作一个简单的程序,分别输入三角形三边长,求出面积
4个edit control 1个button
其中3个edit control分别输入三角形的三边长
按下button 三角形面积显示在第4个edit control中。
遇到问题:面积为doulbe类型值,怎么显示到edit control中?
谢谢啦
...全文
168 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
buding000001 2013-03-27
  • 打赏
  • 举报
回复
3QQQQQQQQQQQQQQQQQQQQQQQQ啦
Kenall 2013-03-27
  • 打赏
  • 举报
回复
%g是去掉小数点后多余的0
Kenall 2013-03-27
  • 打赏
  • 举报
回复
我说错了,%g还是认识的
Kenall 2013-03-27
  • 打赏
  • 举报
回复
虽然MFC也属于C++,但是细微处还有很多不同的。%g貌似他就不认识。。
buding000001 2013-03-27
  • 打赏
  • 举报
回复
谢谢大家了,我已经弄出来了,就是有些地方不太明白,嘿嘿,非常感谢大家
buding000001 2013-03-27
  • 打赏
  • 举报
回复
引用 6 楼 dy106 的回复:
引用 4 楼 buding000001 的回复: 引用 2 楼 kenall 的回复:把DOUBLE转换成CString类型,参考CString.Format函数 嗯,我会把double转换成cstring,但是我取数的时候,是不是要把cstring转换成double,再进行计算,但是_stscanf_s(str1,_T( "%g "),&a);我把cstring的str1赋给……
谢谢,我看书上说,“%g”也是一种输出的形式,就是会将浮点数,值中多余的数去掉,double和float不都是浮点数吗,如果是float输出就是对的,double就是错的,不明白,难道就是因为他们的位数不同?
Kenall 2013-03-27
  • 打赏
  • 举报
回复
引用 1 楼 dy106 的回复:
有很多方法,比如可以使用UpdateData(TRUE)把三个edit的值读出来,然后转换为double型,加法以后再把double转CString,然后把刚才的字符串SetWindowText另外一个edit,然后UpdateData(FALSE)就OK
发现1楼已经说得具体的不能再具体了
Kenall 2013-03-27
  • 打赏
  • 举报
回复

double result;
//...
CString m_Display;
m_Display.Format(_T("%f"),resutl);//不在乎Unicode方式可以去掉_T()
(CEdit*)GetDlgITem(IDC_XXXX)->SetWindowText(Display);IDC_XXX为用来显示结果的EDIT控件的标识号
当然你也可以用wizard绑定数据比如定义 CEdit m_edit; ... DDXControl... m_edit.SetWindowsText("文本");//显示文本
starytx 2013-03-27
  • 打赏
  • 举报
回复
给这个EDIT 控件绑定一个double类型的变量就可以了。
_sunshine 2013-03-27
  • 打赏
  • 举报
回复
引用 4 楼 buding000001 的回复:
引用 2 楼 kenall 的回复:把DOUBLE转换成CString类型,参考CString.Format函数 嗯,我会把double转换成cstring,但是我取数的时候,是不是要把cstring转换成double,再进行计算,但是_stscanf_s(str1,_T( "%g "),&a);我把cstring的str1赋给double的a,执行后a的结果不……

_stscanf(str1,_T( "%lf "),&a); //是lf不是g
_sunshine 2013-03-27
  • 打赏
  • 举报
回复
引用 3 楼 buding000001 的回复:
引用 1 楼 dy106 的回复:有很多方法,比如可以使用UpdateData(TRUE)把三个edit的值读出来,然后转换为double型,加法以后再把double转CString,然后把刚才的字符串SetWindowText另外一个edit,然后UpdateData(FALSE)就OK 我从网上看到一种方法是将变量关联到控件上,是你说的这种方法吗?我最近刚接触mfc,不懂的挺多,多多包涵,嘿……
这是另外一种方法,是将控件与double类型对象关联,你可以看看孙鑫那本《VC++深入详解》,有介绍这个方法,而且刚好是你这个例子。
buding000001 2013-03-27
  • 打赏
  • 举报
回复
引用 2 楼 kenall 的回复:
把DOUBLE转换成CString类型,参考CString.Format函数
嗯,我会把double转换成cstring,但是我取数的时候,是不是要把cstring转换成double,再进行计算,但是_stscanf_s(str1,_T( "%g "),&a);我把cstring的str1赋给double的a,执行后a的结果不对,刚接触mfc,很多不懂,多包涵
buding000001 2013-03-27
  • 打赏
  • 举报
回复
引用 1 楼 dy106 的回复:
有很多方法,比如可以使用UpdateData(TRUE)把三个edit的值读出来,然后转换为double型,加法以后再把double转CString,然后把刚才的字符串SetWindowText另外一个edit,然后UpdateData(FALSE)就OK
我从网上看到一种方法是将变量关联到控件上,是你说的这种方法吗?我最近刚接触mfc,不懂的挺多,多多包涵,嘿嘿
Kenall 2013-03-27
  • 打赏
  • 举报
回复
把DOUBLE转换成CString类型,参考CString.Format函数
_sunshine 2013-03-27
  • 打赏
  • 举报
回复
有很多方法,比如可以使用UpdateData(TRUE)把三个edit的值读出来,然后转换为double型,加法以后再把double转CString,然后把刚才的字符串SetWindowText另外一个edit,然后UpdateData(FALSE)就OK

64,664

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧