我搞了很久也搞不定,老是程序挂着,我在想我调用的方法好像都是符合逻辑啊。怎么好掉呢。
void CMFCDlg::OnButton1()
{
//Dlg2.m_Edit2.SetWindowText("从对话框1设置对话框2的数据X");
//Dlg2->m_Edit2.SetWindowText("从对话框1设置对话框2的数据X");
//GetDlgItem(IDC_EDIT2)->SetWindowText("sssssssss");
//Dlg2=new CClass;
//Dlg2->GetDlgItem(IDC_EDIT2)->SetWindowText("xxxxxxx");
//Dlg2->m_Edit2.SetWindowText("xxxxxxxxxxx");
//CWnd *P=GetDlgItem(IDD_DIALOG1);
//P->GetDlgItem(IDC_EDIT2)->SetWindowText("XXXXXXXXX");
Dlg2->DoModal();
}
===============================================这是我的定义的对象 两种方法定义都试过了。。
class CMFCDlg : public CDialog
{
// Construction
public:
CClass *Dlg2; //CClass 是新建对话框2 他从CDialog继承来的
// CClass Dlg2;
只有最后一行代码可运行。。用来显示对话框2出来的、、
以上是我用的方法来和新建对话框2上的编辑框控件进行通信 都运行不了 直接程序崩溃。。求原因!!
谢谢啊,,那位可以解释下为什么程序会崩溃啊。。我用的是VC6.0
11 个解决方案
#1
指针时木有create
且一般情况下
对于建立模态对话框使用 对象实例.domodal()
对于建立非模态对话框
先new
再create
再show
且一般情况下
对于建立模态对话框使用 对象实例.domodal()
对于建立非模态对话框
先new
再create
再show
#2
对话框2是我创建好的了,,我想在对话框1中的按钮 来设置对话框2 上的编辑框控件 应该怎么做?
#3
DoModal之前控件都没创建,你设置值肯定会出问题.
你给控件创建字符串型变量,给这个变量赋值.
DoModal过程中 dlg2会自己把控件变量读到控件
你给控件创建字符串型变量,给这个变量赋值.
DoModal过程中 dlg2会自己把控件变量读到控件
#4
CClass *Dlg2;
Dlg2->DoModal();
没出错?
Dlg2->DoModal();
没出错?
#5
对象的话就用“.”,且在domodal前修改
指针的话就用->,在showwindow前修改
#6
嗯 是啊,,我也觉得奇怪了,我只定义了这样一个指针,,还没有在堆中创建该对象怎么会可以调用呢 而且也没有错误,, new CClass 怎么回事啊。。不理解,因为在C++里面不可以这么调用的。。
#7
也不可以,,调用就挂了。
#8
CClass *Dlg2;
Dlg2->DoModal();
改为
CClass Dlg2;
Dlg2.DoModal();
Dlg2->DoModal();
改为
CClass Dlg2;
Dlg2.DoModal();
#9
这个没有问题,,不是这个问题 是怎么从对话框1中 设置对话框2上的编辑框数据啊。。
#10
不就是
CClass Dlg2;
Dlg2.SetDlgItemText(IDC_EDIT2,_T("xxxxxxx"));
Dlg2.DoModal();
#11
你这个不行 运行就挂,,我终于明白你说的了
指针时木有create
且一般情况下
对于建立模态对话框使用 对象实例.domodal()
对于建立非模态对话框
先new
再create
再show
今天看了孙鑫的书 才知道
#1
指针时木有create
且一般情况下
对于建立模态对话框使用 对象实例.domodal()
对于建立非模态对话框
先new
再create
再show
且一般情况下
对于建立模态对话框使用 对象实例.domodal()
对于建立非模态对话框
先new
再create
再show
#2
对话框2是我创建好的了,,我想在对话框1中的按钮 来设置对话框2 上的编辑框控件 应该怎么做?
#3
DoModal之前控件都没创建,你设置值肯定会出问题.
你给控件创建字符串型变量,给这个变量赋值.
DoModal过程中 dlg2会自己把控件变量读到控件
你给控件创建字符串型变量,给这个变量赋值.
DoModal过程中 dlg2会自己把控件变量读到控件
#4
CClass *Dlg2;
Dlg2->DoModal();
没出错?
Dlg2->DoModal();
没出错?
#5
对象的话就用“.”,且在domodal前修改
指针的话就用->,在showwindow前修改
#6
嗯 是啊,,我也觉得奇怪了,我只定义了这样一个指针,,还没有在堆中创建该对象怎么会可以调用呢 而且也没有错误,, new CClass 怎么回事啊。。不理解,因为在C++里面不可以这么调用的。。
#7
也不可以,,调用就挂了。
#8
CClass *Dlg2;
Dlg2->DoModal();
改为
CClass Dlg2;
Dlg2.DoModal();
Dlg2->DoModal();
改为
CClass Dlg2;
Dlg2.DoModal();
#9
这个没有问题,,不是这个问题 是怎么从对话框1中 设置对话框2上的编辑框数据啊。。
#10
不就是
CClass Dlg2;
Dlg2.SetDlgItemText(IDC_EDIT2,_T("xxxxxxx"));
Dlg2.DoModal();
#11
你这个不行 运行就挂,,我终于明白你说的了
指针时木有create
且一般情况下
对于建立模态对话框使用 对象实例.domodal()
对于建立非模态对话框
先new
再create
再show
今天看了孙鑫的书 才知道