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();
}头文件也已经包含进去了,程序运行之后,点确定按纽程序就死掉!
解决方案 »
- float数组,以16进制数据存贮到文本文件中
- 请教高手。 救急。html连接数据库的问题。
- 生角散分....
- DOS窗口输出卡死问题
- 我的系统是winxp,在dos下把c和d盘合成一个盘后,重启说找到新硬件,又重启后发现没有d盘,只有cefgh,怎样才能变成cdefg(不重装系统)
- 如何取文件的名称?
- 散分呀, 快来呀
- 各位高手有什么办法,给我帮帮忙?硬盘的分区问题,500分奉送!
- 请大家指点或讨论学习 c++ primer 这本书的方法 谢谢
- Debug异常
- Cannot open source file: 'H:\毕业设计\OfficeAuto\ReceiveDlg.cpp': No such file or directory 怎么回事?
- 向地震中遇难的人们默哀,为地震中受灾的群众祝福
这个肯定会崩溃的。因为这时候m_InRecord还没有初始化呢,所以该对话框的控件都没有产生句柄,调用SetWindowText肯定崩溃。
此时 m_text 还不是个 window 实例
这里的问题。
CDlgInRecord mInRecord;//定义第二个类的对象问题应该出现在这个类里面吧为什么不单步跟踪一下?
然后在该对话框的OnInitDialog函数中调用m_text.SetWindowText(m_sText);
而在CDlgArea对话框的OnOK处写m_InRecord.m_sText = "aa";即可。
这种句子是很不提倡的
已经试过,没效果!
因为
在该对话框的OnInitDialog函数中调用m_text.SetWindowText(m_sText); 的时候第一个类已经初始化过了!
有没有更好的解决办法!???
===啥意思啊?第一个类是啥?
{
// Construction
public:
CDlgArea(CWnd* pParent = NULL); // standard constructor
CDlgInRecord mInRecord;//定义第二个类的对象
};
=====
这只是定义对话框对象,只调用了构造函数,不会调用初始化函数的。必须DoModal或者Create的时候才会调用
第一个窗体:
http://photo.store.qq.com/http_imgload.cgi?/rurl2=6b703cccb7f89f1032a8a6d94d020fb8a7f8d296e7b0cf9aa7b07b6c33e3c49ed9907ec42a614155fd056baa247be9c4c3819839597965dda8b2d03902d5a78c30d5763e2ab98f43a063798b1a06a640cc2a9c1f
第二个窗体:
要实现的功能如下:
点第一个窗体旁边的小按纽,就出现了第二个窗体.(已经实现)
在第二个窗体选择了radiobutton,就将该内容显示到窗体一的edit控件上.(怎么实现???)
地址:
窗体一:
http://photo.store.qq.com/http_imgload.cgi?/rurl2=6b703cccb7f89f1032a8a6d94d020fb8a7f8d296e7b0cf9aa7b07b6c33e3c49ed9907ec42a614155fd056baa247be9c4c3819839597965dda8b2d03902d5a78c30d5763e2ab98f43a063798b1a06a640cc2a9c1f
窗体二:
http://photo.store.qq.com/http_imgload.cgi?/rurl2=9676bfd5920a241d39839e0cb2ca7cf990c5608f16618eec9fe9fac6f7648fde2cd8fe0837b16f30769b772f17eb31898bcb2e0d12f48a0ed5dde92d9d1b21ae5e84505ea65b43ee2e130a399858b6f32a829202
要实现的功能如下:
点第一个窗体旁边的小按纽,就出现了第二个窗体.(已经实现)
在第二个窗体选择了radiobutton,就将该内容显示到窗体一的edit控件上.(怎么实现???)
===
CDlgArea是你所说的第几个窗体?
CDlgArea//是第2个窗体
特别是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我!
你可以判断下
if (mInRecord.m_hWnd)
mInRecord.m_text.SetWindowText("aa");//用第二个类的对象去调用控件