C++ mfc 如何设置子对话框中edit控件的初始默认值?

在子对话框中没有
BOOL Ct1Dlg::OnInitDialog()
{ }//初始值为一个double类型
我知道了,在类向导里添加虚函数

你用的是VC吗,直接改属性,或者给EDIT绑定一个变量,变量类型为DOUBLE,也可以是其他的,看你以后用什么了,然后在窗体初始化函数下让这个变量比如m_edit = 1,再加个UpdateData(0),也有可能是UpdateDate(1)我忘了,就行了,这样你以后用到这个值的时候也方便。追问

我之前用的这个函数
((CEdit*)GetDlgItem(IDC_EDIT1))->SetWindowText(L"11.34")//11.34为初值,
但是,如果在输入框里填写另一个值,这时再
UpdateData(FALSE);
对话框里就又变成了初值,不会是新的输入的值,

追答

光填在对话框里不行,有两个方法,一个是你给控件绑定一个变量加个UpdateDate(1),再一个就是你在UpdateData(0)前再 ((CEdit*)GetDlgItem(IDC_EDIT1))->SetWindowText( ((CEdit*)GetDlgItem(IDC_EDIT1))->GetWindowText()
个人推荐绑定变量的方法

追问

“窗体初始化函数”
因为我是在子对话框中没有
BOOL Ct1Dlg::OnInitDialog()
我在主对话框里的这个函数下是可以实现的,我现在要在哪里绑定变量呢?

追答

VC6.0在类向导里就能给控件绑定变量,我现在用2003,右链控件选择添加变量就可以了。
没有初始给函数就在你要显示那个窗体的时候把值给上就行了呗

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-23
CString str;
str.Format("%f",value);
GetDlgItem(ID)->SetWindowText(str);

value为你要设置的double类型的初值
ID为你edit控件的id追问

我之前用的这个函数
((CEdit*)GetDlgItem(IDC_EDIT1))->SetWindowText(L"11.34")//11.34为初值,
但是,如果在输入框里填写另一个值,这是再
UpdateData(FALSE);
就又变成了初值,不会是新的输入的值

追答

如果你给CEdit变量关联了变量如为m_edit_value,类型为double
那么在初始化时调用((CEdit*)GetDlgItem(IDC_EDIT1))->SetWindowText(L"11.34"),
m_edit_value=11.34
当你在编辑框中输入值时,没有进行UpdateData(TRUE),即将编辑框中的新值覆盖m_edit_value中的值,所以变量中值没变
当你执行UpdateData(FALSE)时,编辑框通过关联变量m_edit_value进行刷新,所以又变成了11.34

有问题欢迎继续讨论

本回答被提问者和网友采纳
第2个回答  2014-03-26
给控件关联一个变量,在OnInitDialog()中给该变量赋值就可以了追问

在子对话框中没有
BOOL Ct1Dlg::OnInitDialog()//Ct1Dlg是对话框名字
啊????

追答

这个函数是可以添加的,在类视图中找到这个对话框的类,右键打开类向导,找到WM_INITDIALOG,添加处理程序就有了

第3个回答  2014-03-26
在构造函数里面给编辑框关联变量赋值追问

构造函数是哪个??

void Ct1::DoDataExchange(CDataExchange* pDX) 吗??

相似回答