这个取不到正常呀你需要UpdateData(TRUE);才可以取到的

解决方案 »

  1.   

    应该是空的,除非你给Dialog1中的m_Edit1赋了初值-:)
      

  2.   

    我在 Dialog1 的EDIT里边填写了一些文字
    UpdateData(TRUE);了

    Dialog1里是这样的
    UpdateData(TRUE);
    Dialog2 dlg;
    dlg.DoModal();在 Dialog2 里
    Dialog1 dlg;
    CString abc;
    abc=dlg.m_Edit1;
    MessageBox(abc);
    就是空白
      

  3.   

    dlg只是你临时开的堆栈,不知你是否有初始值,你也可试试getwindowtext用char取出,方法很多,再看看你的错误所在,是dlg的问题还是CString的问题
      

  4.   

    这位老哥是故意试探吗?呵呵
    第二段代码真是....,不是空白才怪了。
    Dialog1 dlg;//初始化一个Dialog1对象,默认的MFC为你把各种值设为空。
    若你再加上一句:
    if(dlg.DoMaal()==IDOK){//或者用Create的方法。接受Input。
       abc=dlg.m_Edit1;
       MessageBox(abc);
    }
    不过看你的代码,你不怕两个对话框死锁吗?
    若你按我所说的加上我的代码后一准死锁。呵呵,
    1中调二,2中又调一。没治了。
      

  5.   

    TO: sinfee(口是心非)
    那有什么办法防止死琐了呢?
      

  6.   

    看来你是想把dialog1中edit的值传给dialog2,可以这样:Dialog1里是这样的
    UpdateData(TRUE);
    Dialog2 dlg;
    dlg.abc=m_Edit1;
    dlg.DoModal();在 Dialog2 里
    public CString abc;(Dialog2的公有成员变量)
    MessageBox(abc);
      

  7.   

    To:tanzs(tanzs)
    public CString abc;加在哪里?
      

  8.   

    你若只想得到第一个对话框中的值,或想传过去,不要在2中
    再domadal,可以按tanzs的方式做就行了,
    再2中添加一个public类型的变量,在domdal之前把1里的值
    附给它就行了。
      

  9.   

    class Dialog2 ...
    {
    ...
    public CString abc;
    ...
    }