不知你的程序是如何写的?
你可以在ClassWizard中给该EDIT控件增加一个CString变量,或是直接在对话框类mydialog中增加一个CString变量用于读取EDIT中的内容,方法如下:假设该CString变量名为m_strEdit
GetDlgItem(IDC_EDIT1/*该EDIT控件的ID*/)->GetWindowText(m_strEdit);
在其他类中要使用该类中EDIT的内容时,写如下代码:
mydialog dlg;
int nRet=dlg.DoModal();
CString strEdit=dlg.m_strEdit;
...
声明全局变量的方法也可以实现,但没这个必要。

解决方案 »

  1.   

    我完全同意 yangcl() 的方法。函数UpdateData(TRUE)是将edit控件中的内容赋到myedit中,该函数在你需要得到控件内容时调用。
      

  2.   

    我可能没说清楚,是这样的:
       有C++类A及其成员函数b、对话框类C
    A::b中调用
       C mydlg;
       mydlg.DoModal(),调出对话框。
       在对话框的资源上有一个Edit控件,ok,cancel按钮各一个
      在C::OnOK()
         {CEdit* myedit;
    myedit = (CEdit*) GetDlgItem(IDC_EDIT2);//DWORD dwSel = myedit->GetSel();
    // LOWORD(myedit->SetSel(HIWORD(dwSel), -1));
    CString m_string;
    myedit->GetWindowText(m_string);
    g_string=m_string;
    CDialog::OnOK();
          }
       //IDC_EDIT2是Edit控件的ID
    //g_string是在工程头文件中定义为:extern  CString g_string;
    //定义成static CString g_string也不行
      

  3.   

    那么麻烦干什么,用不着全局变量吧?这样:
    dlg的OnOK中:UpdateData(TRUE);A::b中:C mydlg;
    if(mydlg.DoModal() == IDOK)
    {
       m_string = mydlg.m_editstr;
    }其中,m_string是类A的成员变量,m_editstr是mydlg中edit控件对应的成员。
      

  4.   

    不同意声明全局的变量
    甚至使用public的变量也不好
    这样数据的封装就什么都没有了
    对好自己写一个方法来获取数据
      

  5.   

    回复人: greensword() (2001-9-26 23:17:14)  得0分 
    不知你的程序是如何写的?
    你可以在ClassWizard中给该EDIT控件增加一个CString变量,或是直接在对话框类mydialog中增加一个CString变量用于读取EDIT中的内容,方法如下:假设该CString变量名为m_strEdit
    GetDlgItem(IDC_EDIT1/*该EDIT控件的ID*/)->GetWindowText(m_strEdit);
    在其他类中要使用该类中EDIT的内容时,写如下代码:
    mydialog dlg;
    int nRet=dlg.DoModal();
    CString strEdit=dlg.m_strEdit;
    ...
    声明全局变量的方法也可以实现,但没这个必要。  
    ___________________________________________________
    他的方法是比较好的,不过你要注意在对话框销毁之前,UpdateData(TRUE)一下,否则,你很难如愿的哦!
      

  6.   

    对话框的OnOk()函数会自己调用UpdateData(TRUE)
      

  7.   

    greensword的方法我试过了,行不通
      

  8.   

    我想你是不是忽略了一个问题:Class的头文件中声明的变量默认是private,而外部函数访问类的内部变量,该变量应声明为public。
    这个方法我屡试不爽,应该没什么问题,如果你有兴趣继续讨论的话,可以将代码发给我,通过电子邮件联系:[email protected]
      

  9.   

    claider(沧海笑):我觉得你好像太那个了。。嬉喜。。
      

  10.   

     
    example:
       CMyDialog MyDialog;
       if (MyDialog.DoModal() == IDOK )
    {
       RecvVar = MyDialog.m_MemberVar; 
       .....
    }