CinputContinents m_dlg;
if (m_dlg.DoModal() == IDOK)

CString p;
p = m_dlg.mstrEdit;
}
这里我将edit中的值传给p,那么我怎么样将p的值传给别的函数呢,对话框关闭后
p的值就不存在了?

解决方案 »

  1.   

    void OtherFunc(CString csString)
    {
    //do someting.
    }CinputContinents m_dlg;
    if (m_dlg.DoModal() == IDOK)

    CString p;
    p = m_dlg.mstrEdit;OtherFunc(p);
    }
      

  2.   

    对话框关闭不会影响 CString p;这个变量
    而且,也不会影响m_dlg.mstrEdit这个变量,因为m_dlg还存在
    CString p;在这里是多余的,直接使用m_dlg.mstrEdit就可以了,在你离开
    CinputContinents m_dlg;
    所在的代码栈之前,m_dlg有效,m_dlg.mstrEdit也一样有效可以这样用:TreatMyString(m_dlg.mstrEdit);
      

  3.   

    CinputContinents m_dlg;
    CString p(_T(""));if (m_dlg.DoModal() == IDOK)
    {  
    p = m_dlg.mstrEdit;
    }
     就O了
      

  4.   

    在头文件里定义 CString p;
      

  5.   

    你的mstrEdit变量关联的是什么类型???
      

  6.   

    看哪个对话框的 如果是 m_dlg 的话就不影响p的值
      

  7.   

    什么意思,我刚学,不太懂,我就只创建了一个CString型的变量mstrEdit,难道还要关联什么的吗?
      

  8.   

    就是你的Edit框关联的是什么类型的变量,如控件类型CEdit,或者其它类型,CString,int等等。你这里关联的是CString类型的变量。
      

  9.   

    要么在头文件定义CString buf;
    要么在头文件定义CMyDlg  m_dlg;
      

  10.   

    前段时间考试,忘了结贴了,sorry,问题解决了,谢谢大家的帮助。