一个对话框父子关系的帖子

来源:互联网 发布:国动网络董事长卢杰 编辑:程序博客网 时间:2024/06/01 20:30

两个不相关对话框建立父子关系 [问题点数:40分,结帖人ivanwu1020]

 收藏
楼主发表于: 2011-12-29 12:29:34
我用向导创建了一个基于对话框应用程序,然后我直接用资源编辑器又创建了一个对话框,并且为该对话框创建了类,请问我如何把向导生成对话框作为父窗口,我自己创建的对话框作为子窗口呢?
先谢谢各位老师了。
其实我是想在我创建的对话框上控制向导生成对话框上控件的属性,但是却不知道如何获得向导生成对话框的指针或者句柄。
很基础的问题,但是对新手还是很纠结。
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
回复次数:7
#1 得分:10回复于: 2011-12-29 12:41:53
C/C++ code
?
1
2
3
4
5
6
7
CXXDlg m_dlg;
 
if(NULL == m_dlg.GetSafeHwnd())
{
 m_dlg.Create(IDD_XXX, this);
}
m_dlg.ShowWindow(SW_SHOW);
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
#2 得分:10回复于: 2011-12-29 12:47:07
引用楼主 ivanwu1020 的回复:
我用向导创建了一个基于对话框应用程序,然后我直接用资源编辑器又创建了一个对话框,并且为该对话框创建了类,请问我如何把向导生成对话框作为父窗口,我自己创建的对话框作为子窗口呢?
先谢谢各位老师了。
其实我是想在我创建的对话框上控制向导生成对话框上控件的属性,但是却不知道如何获得向导生成对话框的指针或者句柄。
很基础的问题,但是对新手还是很纠结。

直接”在资源编辑器又创建了一个对话框“里获取“向导生成对话框“的指针,然后操作即可

用AfxGetMainWnd 函数
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
#3 得分:0回复于: 2011-12-29 13:11:16
引用 2 楼 gameslq 的回复:
引用楼主 ivanwu1020 的回复:
我用向导创建了一个基于对话框应用程序,然后我直接用资源编辑器又创建了一个对话框,并且为该对话框创建了类,请问我如何把向导生成对话框作为父窗口,我自己创建的对话框作为子窗口呢?
先谢谢各位老师了。
其实我是想在我创建的对话框上控制向导生成对话框上控件的属性,但是却不知道如何获得向导生成对话框的指针或者句柄。
很基础的问题,但是对新手还是很纠结。

……


非常感谢,程序调试好了,采用了你的方法,不过我想追问下,是不向导生成对话框就默认为父窗口,而我自己创建的窗口只要在资源编辑器中把Style 选成CHILD  就建立起两个对话框的父子关系了啊?

我能使用GetParent么?
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
#4 得分:0回复于: 2011-12-29 13:14:26
引用 1 楼 visualeleven 的回复:
C/C++ code

CXXDlg m_dlg;

if(NULL == m_dlg.GetSafeHwnd())
{
 m_dlg.Create(IDD_XXX, this);
}
m_dlg.ShowWindow(SW_SHOW);


大神,你的回答很具启发性,但是我基础比较差,能和我说说简单的一个思路么,不胜感激!
大概的就可以,谢谢。
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
#5 得分:10回复于: 2011-12-29 14:20:51
DLG1  DLG2
DLG1 作为父类,在DLG1头文件中定义 DLG2 m_dlg;  构造时new m_dlg;
在需要开启时候create(,,DLG2的资源)
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
#6 得分:10回复于: 2011-12-29 14:38:07
只要是向导生成的对话框默认都是主对话框,在主对话框中通过CWnd::DoModal()或CWnd::Create()显示的对话框都默认子对话框,如果要设置自定义对话框之间的父子关系可以在一个子对话框中调用CWnd::FindWidnow()找到另一个子对话框,再调用CWnd::SetParent()设置父子关系.
1 丢个板砖[0] 引用 | 举报 | 管理
#7 得分:0回复于: 2011-12-29 14:46:56
分不多 分大家平分了 谢谢大家的点拨
0 0
原创粉丝点击