我的情况是这样。 我有两个对话框。
第一个 点击按键-》弹出第二个。。
我想把我在第一个对话框输入的数据 转到第二去,并显示出来
于是
void CMyEmailDlg::OnOk()
{
CString temp;
DIALOGUE2 begin;
begin.DoModal ();
UpdateData();
begin.m_temp =m_EMAILADDRESS;
temp=begin.m_temp;
begin.m_email.Format ("%s",temp);
MessageBox(temp);
// TODO: Add your control notification handler code here
UpdateData(FALSE);
}
我用MessageBOX查看了,数据的确付给了TEMP。说明m_temp的值变了啊。不再是刚开始的NULL
为什么弹出来的对话框,没有数据显示...求解决方案
第一个 点击按键-》弹出第二个。。
我想把我在第一个对话框输入的数据 转到第二去,并显示出来
于是
void CMyEmailDlg::OnOk()
{
CString temp;
DIALOGUE2 begin;
begin.DoModal ();
UpdateData();
begin.m_temp =m_EMAILADDRESS;
temp=begin.m_temp;
begin.m_email.Format ("%s",temp);
MessageBox(temp);
// TODO: Add your control notification handler code here
UpdateData(FALSE);
}
我用MessageBOX查看了,数据的确付给了TEMP。说明m_temp的值变了啊。不再是刚开始的NULL
为什么弹出来的对话框,没有数据显示...求解决方案
DIALOGUE2 begin;
begin.m_temp =m_EMAILADDRESS;
begin.DoModal ();
//UpdateData(false);放到第二个对话框的OnInitDialog()当中
传递数据要在这句之前
要关闭前面的对话框,直接在begin.DoModal ();之前调用CDialog::OK()就是了
void CMyEmailDlg::OnOk()
{
CString temp;
DIALOGUE2 begin;
UpdateData();//这个想必是取第一个对话框的数据存到变量m_EMAILADDRESS里
begin.m_temp =m_EMAILADDRESS;//给第二个对话框的变量赋值,注意要在第二个对话框的OnInitDialog()中调用UpdateData(FALSE);
temp=begin.m_temp;
begin.DoModal ();
begin.m_email.Format ("%s",temp);
MessageBox(temp);
// TODO: Add your control notification handler code here
UpdateData(FALSE);
}
一、取第一个对话框里的数据保存到变量里:UpdateData(TRUE)
二、将第一个对话框的变量赋值给第二个对话框的变量
三、在第二个对话框的初始化中将变量存到控件上UpdateData(FALSE)
四、显示第二个对话框就可以了
CString temp;
DIALOGUE2 begin;
begin.m_temp =m_EMAILADDRESS;//这个放在DoModal前面begin.DoModal ();
temp=begin.m_temp;
楼主可以在弹出对话框的初始化函数中AfxGetMainWnd()获取主对话框窗口的指针
例如:
C数据传递Dlg *pMainWnd=(C数据传递Dlg*)AfxGetMainWnd();
CString strText;
pMainWnd->GetDlgItemText(IDC_EDIT1,strText);//获取主对话框数据
SetDlgItemText(IDC_EDIT2,strText);//设为子对话框数据