我有个对话框CADialog,有一个按妞“插入”,在其单击处理函数Onbutton()中,我要它点击后弹出另一个对话框CBDialog,然后给CBDialog上的一个编辑框m_edit输入一个字符串并显示,该怎么做?

解决方案 »

  1.   

    在Onbutton()中加入:CBDialog m_bdlg;
    m_bdlg.DoModal();然后取对话框B的编辑框的句柄 ,用SetWindowText设置字符串
      

  2.   

    在 CBDialog类的 OnInitDialog事件里面:
    SetDlgItemText(IDC_EDIT, "新年大发");
      

  3.   

    没问题的,我前面属性设置错了.sorry
      

  4.   

    1.对话框资源
    2.对应对话框类
    3.添加对话框的头文件.h
    void CTtDlg::OnButton1() 
    {
    dlg.Create(IDD_DIALOG1,this);
    dlg.ShowWindow(1);
    dlg.m_con.SetWindowText("fanqing");//m_con为edit控件的变量

    }
      

  5.   

    kugou123(酷狗)的方法肯定是不行的,
    因为调用DoModal显示对话框的时候,DoModal在对话框被关闭后才会返回,这时句柄已经无效,而且对话框已经显示完了。
    fanqing(火影忍者+20%) 的方法好像有点绕弯路了,毕竟非模态对话框有它自己的使用范围,不是在那里都合适,而且这种方法在MFC中也不是很合适,有点违反封装原则。
    我的办法是:
    给对话框B的编辑框添加一个变量,类型为CString型,名字假设为:m_edittext,访问类型为public
    这个变量可以跟你的m_edit同时添加,只要类型不同即可。
    代码如下:
    OnButton1
    {
        CBDialog dlg;
        dlg.m_edittext = 你要设置的字符串。
        dlg.DoModal();
    }
    这样,就可以给你的编辑框设置字符串了。