高手指点:对话框之间怎么交换数据?
本本人 2010-11-15 11:17:56
两个对话框之间怎么交换数据?也就是说怎么把一个对话框的数据显示在另一个对话框上面!
首先我定义了两个非模态对话框,单击按钮后弹出另一 个对话框,我在弹出的对话框输入数据,让输入的数据显示在主对话框上,这个怎么弄,还望高手指点,小弟感激万分!我写了个Demo测试,还是通不过。我在主对话框上定义了show(CString )
函数,用来显示从子对话框传来的数据。如下:
void CtestDemoDlg::show(CString buffer)
{
CString strTemp = buffer;
//AfxMessageBox(strTemp);
SetDlgItemText(IDC_STATIC1,strTemp);
}
我在弹出的对话框输入数据,单击OK按钮,让它把数据带给show()显示在主对话框上,如下:
void ChildDlg::OnBnClickedOk()
{
// TODO: Add your control notification handler code here
CString buffer;
m_Edit.GetWindowText(buffer);
pDemoDlg->show(buffer); //pDemoDlg是主对话框的指针
}
但是显示不出来,出错,不知道怎么回事?我调试后发现,show函数是把数据带过去了,strTemp拿到了数据,可就是 SetDlgItemText(IDC_STATIC1,strTemp)显示不出来(换成其他控件显示都一样不出来),但我用AfxMessageBox(strTemp)测试,没有问题,数据都能显示出来.然后我把SetDlgItemText(IDC_STATIC1,strTemp)换成m_Static.SetWindowText(strTemp),一样的显示不出来。请高手们指点小弟,感激万分!