MFC里怎么在一个文本框里显示一个变量值?

比如有一个float类型的变量a,有一个静态文本框控件IDC_STATIC1,怎么在STATIC1里显示这个变量的值?

第1个回答  推荐于2016-01-16
直接将变量值转换成CString,在现实到静态文本框。
CString str;
str.Format("%f", a);
SetDlgItemText( IDC_STATIC1, str);
第2个回答  2011-05-27
追问报错了
cannot convert parameter 1 from 'const char [3]' to 'const wchar_t *'
=========================
你应该是用的vs吧,vs新建工程时默认使用了unicode字符集,wchar_t就是unicode对应的字符类型
需要设置下工程属性(Alt+F7)→配置属性→常规→项目默认值→字符集,设置成“未设置”就行了追问

谢谢你,请问怎么控制float的小数位数?它默认都是显示小数点后5位,我觉得有点多

第3个回答  2011-05-26
其实有很多方法,我就介绍个简单的吧!cwnd类有一个成员函数CWnd::SetDlgItemInt,原型是void SetDlgItemInt( int nID, UINT nValue, BOOL bSigned = TRUE );
第4个回答  推荐于2018-02-27
一楼提供的是一种方法,我再提供两种方法。
1)、
CString str;
str.Format("%f", a);
this->SetDlgItemText(IDC_STATIC1, str);
2)、
CString str;
str.Format("%f", a);
CWnd* pwnd = this->GetDlgItem(IDC_STATIC1);
pwnd->SetWindowText(str);追问

报错了
cannot convert parameter 1 from 'const char [3]' to 'const wchar_t *'

追答

你如果想在小数点后保留2位,就这么写:
str.Format("%.2f", a);

本回答被提问者和网友采纳
第5个回答  2011-05-26
你可以打开类向导,在变量选项卡给IDC_STATIC1 添加变量 类型选float
然后到时候给变量赋值后 UpdateData(False) 就可以自动将值赋给控件追问

赋值后好像并没有显示出变量,文本框仍然显示的是static

追答

你把UpdateDate写哪里了,变量咋赋的 必须得触发Update函数 比如写在InitDialog里面

追问

我设了一个button,把它写到OnBnClickedButton里面了,行不?

追答

可以

相似回答