各位:
我在用MFC编程的时候遇到这么一个问题,就是最初程序运行有一个Dialog对话框,在我按了一个按钮之后,它会弹出一个对话框,我想在新弹出的对话框中设一个按钮,按下这个按钮之后,就会对原来的对话框中的一个文本框进行必要的修改                 现在我的问题是我没法进行修改,我不知道该怎么些这个新对话框中的按钮对应的函数      ,因为直接用dlg.m_text修改是不行的...代码如下:各位帮我看看哪里需要修改下
void CSMTPwithAttachDlg::OnSeeList() 
{   //这样的代码经实践,不能用...
//这个函数是程序最初运行时的对话框中的一个按钮对应的函数
//我想通过点击新对话框中的按钮( ID是:ID_ADD_TO_RCVER)来修改原来的对话框中的数据.
    //UpdateData();
    CDataExchange DX(this, TRUE);
    DDX_Text(&DX, IDC_EDIT_RECEIVER, m_Receiver);
CFriendDlg dlg(this);
if(dlg.DoModal()==ID_ADD_TO_RCVER)
{
dlg.UpdateData();
CString text;

if(!m_Receiver.IsEmpty())
{
m_Receiver = m_Receiver+",";
}
dlg.GetDlgItemText(IDC_EDIT_NICK,text) ;
m_Receiver = m_Receiver + "<"+ dlg.m_NickName +">" ;
dlg.GetDlgItemText(IDC_EDIT_FADDR,text);
m_Receiver = m_Receiver + dlg.m_MailAddr;
// dlg.OnCancel();
}
// UpdateData(FALSE);
CDataExchange DX2(this, FALSE);
    DDX_Text(&DX2, IDC_EDIT_RECEIVER, m_Receiver);
}

解决方案 »

  1.   

    程序运行,通过点击弹出新对话框之后,点击ID_ADD_TO_RCVER对应的按钮,什么事都没有
    发生 ,而如果在新对话框的类的成员函数定义时添加对应ID_ADD_TO_RCVER的函数的话,
    我又不知道如何得到原来对话框的指针  
    好像AfxGetApp()也不行,要么就是我用错了,呵呵请高手指点指点,谢谢
      

  2.   

    dlg的DoModal结束后对话框已经关闭了,不能再调用GetDlgItemText和OnCancel之类的函数,可以在dlg中定义借个string变量,再对话框的ID_ADD_TO_RCVER响应函数中调用GetDlgItemText将数据存放在这些变量中,在DoModal之后可以访问这些变量得到数据
      

  3.   

    之一:定义全局变脸m_Receiver,在新对话框弹出后,按按钮,把你的数据存在m_Receiver中,新对话框销毁后,再把全局变量的内容更新在旧对话框中。