在VC++中的MFC利用一个dialoge对话框中按钮调用另一个dialoge对话框

来源:百度知道 编辑:UC知道 时间:2024/05/31 04:19:58
哪位大侠能帮忙解答一下,怎么在VC++中的MFC利用一个dialoge对话框中按钮调用另一个dialoge对话框。如用“IDD_A_DIALOG”中的“确定”按钮,就会弹出在Class中增加的New Form对话框“IDD_B_DIALOG”。有人说将“确定”增加“->show()”,可是还是不会用,求求你,帮帮忙!急用!!!!请写详细一点,拜托!!!回答的好,小弟再奉上50分!

1.可以调用模态的对话框
void ADlg:: Button()
{
BDlg bdlg;
bdlg.DoModal();
}
2.调用非模态
在 Adlg.h 包含 Bdlg.h头文件
中定义
BDlg* m_pdblg;

在Adlg.cpp中
在构造函数中初始化
m_pdblg = NULL;
在析构函数中
if(m_pdblg != NULL)
{
delete m_pdblg;
}

在单击按钮中
void ADlg:: Button()
{
m_pdblg = new BDlg;
m_pdblg->Create(IDD_BDLG);
m_pdblg->ShowWindow();
}

两种方法,第一种比较简单,但是它是模态对话框

假设你的两个对话框的资源为IDD_A_DIALOG和IDD_B_DIALOG
如果要在A中调出B对话框,那么A肯定已经有一个对应的DLG类了
转到IDD_B_DIALOG资源视图为它建立一个基类为CDialog的类,假设叫CBDlg
然后在A的CPP文件中加入CBDlg.h的头文件包含
调用的代码为: CBDlg b; b.DoModal();
DoModal有返回值,就是判断确定和取消用的

首先,建立一个新对话框类,在原对话框里声明该类的对象.设为a,就是你要弹出的对话框所在的类的对象,
然后在按钮方法里加
a.Create(IDD_B_DIALOG,this );
a.ShowWindow(SW_SHOW);
搞定~