class CDlgArea : public CDialog //第一个类
{
// Construction
public:
CDlgArea(CWnd* pParent = NULL);   // standard constructor
CDlgInRecord mInRecord;//定义第二个类的对象
};void CDlgArea::OnOK() //第一个类
{
UpdateData();
switch(m_Radio)
{
case 0:
mInRecord.m_text.SetWindowText("aa");//用第二个类的对象去调用控件
break;
default:
break;
}
CDialog::OnOK();
}头文件也已经包含进去了,程序运行之后,点确定按纽程序就死掉!

解决方案 »

  1.   

    mInRecord.m_text.SetWindowText("aa");//用第二个类的对象去调用控件
    这个肯定会崩溃的。因为这时候m_InRecord还没有初始化呢,所以该对话框的控件都没有产生句柄,调用SetWindowText肯定崩溃。
      

  2.   

    mInRecord.m_text.SetWindowText("aa");//用第二个类的对象去调用控件
    此时 m_text 还不是个 window 实例
      

  3.   

    CDlgInRecord mInRecord;//定义第二个类的对象
    这里的问题。
      

  4.   

    这是什么东西?
    CDlgInRecord mInRecord;//定义第二个类的对象问题应该出现在这个类里面吧为什么不单步跟踪一下?
      

  5.   

    你可以在mInRecord对话框中定义一个public的成员变量 CString m_sText;
    然后在该对话框的OnInitDialog函数中调用m_text.SetWindowText(m_sText);
    而在CDlgArea对话框的OnOK处写m_InRecord.m_sText = "aa";即可。
      

  6.   

    mInRecord.m_text.SetWindowText("aa");//这句话运行的前提是:mInRecord已经show出来了,否则就会有问题了,呵呵!
      

  7.   

    像mInRecord.m_text.SetWindowText("aa");//用第二个类的对象去调用控件
    这种句子是很不提倡的
      

  8.   

    To happyparrot :
    已经试过,没效果!
    因为
    在该对话框的OnInitDialog函数中调用m_text.SetWindowText(m_sText); 的时候第一个类已经初始化过了!
    有没有更好的解决办法!???
      

  9.   

    在该对话框的OnInitDialog函数中调用m_text.SetWindowText(m_sText); 的时候第一个类已经初始化过了!
    ===啥意思啊?第一个类是啥?
      

  10.   

    class CDlgArea : public CDialog //第一个类
    {
    // Construction
    public:
        CDlgArea(CWnd* pParent = NULL);   // standard constructor
        CDlgInRecord mInRecord;//定义第二个类的对象
    };
      

  11.   

    CDlgInRecord mInRecord;//定义第二个类的对象
    =====
    这只是定义对话框对象,只调用了构造函数,不会调用初始化函数的。必须DoModal或者Create的时候才会调用
      

  12.   

    TO 所有人:
    第一个窗体:
    http://photo.store.qq.com/http_imgload.cgi?/rurl2=6b703cccb7f89f1032a8a6d94d020fb8a7f8d296e7b0cf9aa7b07b6c33e3c49ed9907ec42a614155fd056baa247be9c4c3819839597965dda8b2d03902d5a78c30d5763e2ab98f43a063798b1a06a640cc2a9c1f
    第二个窗体:
    要实现的功能如下:
    点第一个窗体旁边的小按纽,就出现了第二个窗体.(已经实现)
    在第二个窗体选择了radiobutton,就将该内容显示到窗体一的edit控件上.(怎么实现???)
      

  13.   

    大家去我控件看图片吧,这贴不出来!
    地址:
    窗体一:
    http://photo.store.qq.com/http_imgload.cgi?/rurl2=6b703cccb7f89f1032a8a6d94d020fb8a7f8d296e7b0cf9aa7b07b6c33e3c49ed9907ec42a614155fd056baa247be9c4c3819839597965dda8b2d03902d5a78c30d5763e2ab98f43a063798b1a06a640cc2a9c1f
    窗体二:
    http://photo.store.qq.com/http_imgload.cgi?/rurl2=9676bfd5920a241d39839e0cb2ca7cf990c5608f16618eec9fe9fac6f7648fde2cd8fe0837b16f30769b772f17eb31898bcb2e0d12f48a0ed5dde92d9d1b21ae5e84505ea65b43ee2e130a399858b6f32a829202
    要实现的功能如下: 
    点第一个窗体旁边的小按纽,就出现了第二个窗体.(已经实现) 
    在第二个窗体选择了radiobutton,就将该内容显示到窗体一的edit控件上.(怎么实现???)
      

  14.   

    在第二个窗体选择了radiobutton,就将该内容显示到窗体一的edit控件上.(怎么实现???)
    ===
    CDlgArea是你所说的第几个窗体?
      

  15.   

    CDlgInRecord//是第一个窗体
    CDlgArea//是第2个窗体
      

  16.   

    如果按你所说,那么可以用SetWindowText。好点的方法是在第一个窗体中增加一个public函数,该函数中修改m_text的内容。而第二个窗体中调用该函数传入值。
      

  17.   

    问题已经解决了,照样给分!谢谢大家了~ 
    特别是happyparrot.
    问题总结:
    地址: 
    窗体一: 
    http://photo.store.qq.com/http_imgload.cgi?/rurl2=6b703cccb7f89f1032a8a6d94d020fb8a7f8d296e7b0cf9aa7b07b6c33e3c49ed9907ec42a614155fd056baa247be9c4c3819839597965dda8b2d03902d5a78c30d5763e2ab98f43a063798b1a06a640cc2a9c1f 
    窗体二: 
    http://photo.store.qq.com/http_imgload.cgi?/rurl2=9676bfd5920a241d39839e0cb2ca7cf990c5608f16618eec9fe9fac6f7648fde2cd8fe0837b16f30769b772f17eb31898bcb2e0d12f48a0ed5dde92d9d1b21ae5e84505ea65b43ee2e130a399858b6f32a829202 要实现的功能如下:  
    在第二个窗体选择了radiobutton,就将该内容显示到窗体一的edit控件上.解决方法如下:
    1.在CDlgArea类中#include "DlgInRecord"
    2.在CDlgArea中定义一个CString temp;//用于存放要先到edit控件的内容
    3.分别在第一个窗体的按纽中添加响应代码,以及在第二个窗体的确定按纽下添加响应代码
    void CDlgInRecord::OnSelArea() //第一个窗体
    {
    CDlgArea dlg;//定义CDlgArea对象
    if(IDOK==dlg.DoModal())
    {
    m_text.SetWindowText(dlg.temp);//通过对象调用这个变量
    }
    }void CDlgArea::OnOK() //第二个窗体
    {
    UpdateData();
    switch(m_Radio)
    {
    case 0:
    temp="aa";
    break;
    default:
    break;
    }
    CDialog::OnOK();
    }
    以上就是今天的收获!如有不明白的地方可Q我!
      

  18.   

    估计是mInRecord的窗口句柄空,
    你可以判断下
    if (mInRecord.m_hWnd)
    mInRecord.m_text.SetWindowText("aa");//用第二个类的对象去调用控件