MFC对话框的编辑框显示数据问题。
我想实现的是点击对话框按钮之后弹出一个新的对话框,在新对话框上面的编辑框显示之前对话框按钮下函数调用另一函数的变量的值。我需要怎么做?显示新对话框的代码是放在旧对话框按钮...
我想实现的是点击对话框按钮之后弹出一个新的对话框,在新对话框上面的编辑框显示之前对话框按钮下函数调用另一函数的变量的值。我需要怎么做?显示新对话框的代码是放在旧对话框按钮函数下面?那变量赋值给新对话框编辑框关联变量这些语句放在哪里?是放在之前对话框按钮函数那里还是该函数调用的另一函数那里?不知道说清楚没?急呀。。。
展开
2个回答
展开全部
在新的对话框中定义public变量,用来接收旧对话框传入的值。
例如需要将旧对话框中的double value传入新的对话框,则在新的对话框类中定义:
public:
double value;
在旧对话框中响应按钮按下,添加如下代码:
CNewDlg dlg;
dlg.value = value; //dlg.value为新对话框的变量,value为旧对话框变量,值传递
dlg.DoModal(); //打开新对话框
例如需要将旧对话框中的double value传入新的对话框,则在新的对话框类中定义:
public:
double value;
在旧对话框中响应按钮按下,添加如下代码:
CNewDlg dlg;
dlg.value = value; //dlg.value为新对话框的变量,value为旧对话框变量,值传递
dlg.DoModal(); //打开新对话框
追问
谢谢你的回答,我按照你的做的执行这个dlg.value = value的时候,说是数据类型不匹配,新对话框上面编辑框的变量类型是CEdit value(好像是自动生成的),而新的是double value。怎么办呢?
展开全部
在新对话框的dlg类中定义需要被赋值的变量(public)。同时在initailize中将变量值设置到要显示的控件中。
旧对话框在调用新对话框的DoModal前将这些变量值赋好。
调用DoModal显示新对话框
更多追问追答
追问
你好,我是想在新对话框的编辑框里显示这个值,也是定义public:double value吗?我是定义了CEdit value,然后CString str;str.Format("%d",value);GetDlgItem(IDC_EDIT)->SetWindowText(str);UpdateData(FALSE);可是不显示结果。
追答
value是新对话框的dlg类里的public变量。父对话框在调用前给它赋上值。而不是定义为CEdit value。应该是double value。
CString str;
str.Format("%d",value);应该是str.Format("%lf",value);
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询