MFC:父窗口向子窗口传值问题。为什么我想这样由父窗口向子窗口传值失败?

voidCYDialog::canshujisuan(){//TODO:AddyourcontrolnotificationhandlercodehereGetDlgIt... void CYDialog::canshujisuan()
{

// TODO: Add your control notification handler code here
GetDlgItemText(IDC_EDIT1,str1);
GetDlgItemText(IDC_EDIT2,str2);
GetDlgItemText(IDC_EDIT17,str3);
m_zhuanjiao=str1;
m_Radius=str2;
m_jiaodianlicheng=str3;
//(double)atof(m_T)
temp1 = (double)atof(m_Radius) * tan((double)atof(m_zhuanjiao)*m_pai/180/2);
//(double)atof(m_L)
temp2= (double)atof(m_Radius) * (double)atof(m_zhuanjiao) * m_pai/180;
//(double)atof(m_E)
temp3= (double)atof(m_Radius) * (1/cos((double)atof(m_zhuanjiao)*m_pai/180/2)-1);
//(double)atof(m_q)
temp4=2*(double)temp1 - temp2;
m_T.Format("%f",temp1);
m_L.Format("%f",temp2);
m_E.Format("%f",temp3);
m_q.Format("%f",temp4);
m_qidianlicheng.Format("%f",(double)atof(m_jiaodianlicheng)-temp1);
m_zhongdianlicheng.Format("%f",temp1+(double)atof(m_jiaodianlicheng));
SetDlgItemText(IDC_EDIT5,m_T);
SetDlgItemText(IDC_EDIT7,m_L);
SetDlgItemText(IDC_EDIT8,m_E);
SetDlgItemText(IDC_EDIT6,m_q);
SetDlgItemText(IDC_EDIT18,m_qidianlicheng);
SetDlgItemText(IDC_EDIT19,m_zhongdianlicheng);
//UpdateData();

}
这是父窗口的赋值函数,我在希望在子窗口中得到m_E等,但我像下面这样不行
void CYDialog1::DD_jisuan()
{
CYDialog Dlg;
SetDlgItemText(IDC_EDIT2,Dlg.m_E);
}
应该如何操作?求高手赐教。
补充:我的目的就是想在子窗口类函数中用父窗口类函数计算后的数据,当然这些数据是保存在父窗口类的公有成员中的。这里DD_jisuan() 只是举个简单例子。
展开
 我来答
不宜然EG
2012-05-05 · TA获得超过102个赞
知道答主
回答量:236
采纳率:0%
帮助的人:131万
展开全部
SetDlgItemText肯定不行,因为这是设置对话框中控件的文本,你这样,对话框还没创建呢,怎样设置值?CYDialog Dlg;
只是创建了类,还没创建对话框
追问
哟,这是我没写清楚,搞错了,我是创建了两个两个模态对话框。我现在的问题是,我给对话框一种的编辑框控件绑定了变量,通过在这个对话框类中的函数计算给他赋了值。在第二个对话框中我希望能用这些值,于是我在该对话框类CYDialog1中,实例化了一个第一个对话框类CYDialog的对象 Dlg,但是发现通过Dlg.m_E得到的数据始终为空,这是怎么回事啊?对话框二是通过对话框一上的控件打开的,并且对话框一并未消失。
追答
肯定的了,因为你这样做是两个不同的类
也就是你两次创建的是不同的对话框,所以,你可以使用非模态对话框,如:
CYDialog *m_pDlg;
CYDialog = new CYDialog(this);
m_pDlg->Create(CYDialog::IDD, this);
m_pDlg->SHowWindow(SW_SHOW);
匿名用户
2012-05-05
展开全部
CYDialog 定义一个public:
int m_e;

CYDialog Dlg;
Dlg.m_e=m_E;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式