非模态对话框的几个问题
基于单个对话框的mfc编程。CDlg是一个对话框类。在主对话框中建立对话框:问题1:CDlgdlg;dlg.Create(ID,this);dlg.ShowWindow(...
基于单个对话框的mfc编程。CDlg是一个对话框类。
在主对话框中建立对话框:
问题1:
CDlg dlg;
dlg.Create(ID,this);
dlg.ShowWindow(SW_SHOW);
------------------------和
CDlg* dlg=new CDlg;
dlg->Create(ID,this);
dlg->ShowWindow(SW_SHOW);
两种方法有什么不一样?
第一种方法分配内存了吗?关闭第二个对话框时要不要delete this?
问题2:
CDlg* dlg=new CDlg;
dlg->Create(ID,this);
dlg->ShowWindow(SW_SHOW);
------------------------和
CDlg dlg;
dlg->Create(ID,this);
dlg->ShowWindow(SW_SHOW);
有什么不一样?第二种要不要delete this?
问题三:
能不能在第二个对话框中向主对话框传递变量值?怎么做呢?
问题2第二个方法,有误,是CDlg* dlg;
-----------------------
第3个问题,怎样传递变量呢?
子对话框实在主对话框中建立的,那么主-》子对话框是很容易传递变量值的。dlg->变量名。对吧。
我的问题是在子对话框下怎样实现:子-》主对话框传递变量值?在子对话框下怎样找到主窗口的指针或句柄呢? 展开
在主对话框中建立对话框:
问题1:
CDlg dlg;
dlg.Create(ID,this);
dlg.ShowWindow(SW_SHOW);
------------------------和
CDlg* dlg=new CDlg;
dlg->Create(ID,this);
dlg->ShowWindow(SW_SHOW);
两种方法有什么不一样?
第一种方法分配内存了吗?关闭第二个对话框时要不要delete this?
问题2:
CDlg* dlg=new CDlg;
dlg->Create(ID,this);
dlg->ShowWindow(SW_SHOW);
------------------------和
CDlg dlg;
dlg->Create(ID,this);
dlg->ShowWindow(SW_SHOW);
有什么不一样?第二种要不要delete this?
问题三:
能不能在第二个对话框中向主对话框传递变量值?怎么做呢?
问题2第二个方法,有误,是CDlg* dlg;
-----------------------
第3个问题,怎样传递变量呢?
子对话框实在主对话框中建立的,那么主-》子对话框是很容易传递变量值的。dlg->变量名。对吧。
我的问题是在子对话框下怎样实现:子-》主对话框传递变量值?在子对话框下怎样找到主窗口的指针或句柄呢? 展开
2个回答
展开全部
问题1:
都分配了,
第一个是栈内存,函数体执行完成,窗口自动被关闭,所以根本显示不出来窗口,只是闪一下就被关掉(除非CDlg dlg; 放在主对话框类定义里面);
第二个是堆内城,对话框可一直显示,需要使用 delete dlg;才能关闭对话框。
问题2: 同问题一,一个是在堆空间,一个是栈空间,你编码试试就知道了。new 分配的需要 delete dlg;
问题3:2种方法都可以传递变量,但必须保证此对话框实体没有被释放,栈分配的那个定义成类的成员变量就可以了,一样使用。
都分配了,
第一个是栈内存,函数体执行完成,窗口自动被关闭,所以根本显示不出来窗口,只是闪一下就被关掉(除非CDlg dlg; 放在主对话框类定义里面);
第二个是堆内城,对话框可一直显示,需要使用 delete dlg;才能关闭对话框。
问题2: 同问题一,一个是在堆空间,一个是栈空间,你编码试试就知道了。new 分配的需要 delete dlg;
问题3:2种方法都可以传递变量,但必须保证此对话框实体没有被释放,栈分配的那个定义成类的成员变量就可以了,一样使用。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询