这是我的代码:
void CCreate::OnBTN1() //消息响应函数{
// TODO: Add your control notification handler code here
   
CXsglDlg dlg;//另一个对话框的对象
dlg.m_nvalue=m_name; //文本传递给dlg中一个变量    
         dlg.GetDlgItem(IDC_STAC1)->SetWindowText(dlg.m_nvalue);/得到控件ID,改变       
        UpdateData(FALSE);// 刷新
CDialog::OnOK();//关闭  }

解决方案 »

  1.   

    CXsglDlg dlg;//另一个对话框的对象
    dlg.m_nvalue=m_name; //文本传递给dlg中一个变量   
    此时没有调用dlg.DoModal();所以对话框还没产生,当然控件也没有 
    那么这个GetDlgItem返回NULL了。
    你可以在CXsglDlg的OnInitDialog函数中调用下面这句
    dlg.GetDlgItem(IDC_STAC1)->SetWindowText(dlg.m_nvalue);/得到控件ID,改变       
    UpdateData(FALSE);// 这个不是刷新,这个是 值 传到 控件。再说这个是针对于当前对话框的,对于另一个对话框,你要在CXsglDlg.cpp中调用。
      

  2.   

    CXsglDlg dlg;//另一个对话框的对象
    dlg.m_nvalue=m_name; //文本传递给dlg中一个变量    
              dlg.GetDlgItem(IDC_STAC1)->SetWindowText(dlg.m_nvalue);/得到控件ID,改变 
    ----------
    你只定义了一个对话框类的对象,并没有关联任何的窗口,所以后面跟窗口相关联的操作均为非法的。你可以修改CXsglDlg类的构造函数,将m_name作为构造函数的参数传递进入。在CXsglDlg的窗口初始化的函数中比如OnInitDialog函数中GetDlgItem(IDC_STAC1)->SetWindowText(m_nvalue);/
      

  3.   

    上面的方法试了一下,但是没有解决问题,可能是我描述的不清楚,希望各位大侠指点
    主对话框为类为CXsgl,单击建立按钮,弹出子窗口CCreate,在子窗口输入文本,单击确定,文本被传到主对话框的静态编辑框控件上面,并且显示出来
    下面是单击确定后的响应函数,希望大侠看看问题到底出在哪里,非常感谢
      

  4.   

    void CCreate::OnBTN1() 
    {
    // TODO: Add your control notification handler code here
       
    CXsglDlg dlg;
    dlg.m_nvalue=m_name;
            dlg.GetDlgItem(IDC_STAC1)->SetWindowText(dlg.m_nvalue);
            UpdateData(FALSE);
    CDialog::OnOK();
    }
    图片没有按顺序显示,海涵
      

  5.   

    CXsglDlg dlg;//另一个对话框的对象
    .....
    主对话框为类为CXsgl,单击建立按钮,弹出子窗口CCreate,在子窗口输入文本,单击确定,文本被传到主对话框的静态编辑框控件上面,并且显示出来
    CXsglDlg dlg;
    dlg.DoModal();
    GetDlgItem(IDC_STAC1)->SetWindowText(dlg.m_name);
      

  6.   

    sendmessage WM_SETFONT
    WM_SETTEXTand so on...