我正在尝试使用对话框创建一个类似于结构的向导...所以我替换了CDialog1App中的代码,如下所示
CDialog1Dlg* dlg = new CDialog1Dlg;
m_pMainWnd = dlg;
dlg->Create(IDD_DIALOG1);
dlg->ShowWindow(SW_SHOW);
以上工作正常...它正在显示对话框。但我添加了另一个对话框... 因此,在第一个对话框中,如果用户单击“下一步”,则必须隐藏第一个对话框并显示第二个对话框..
// CDialog1类
void CDialog1Dlg::OnBnClickedNext()
{
// TODO: Add your control notification handler code here
CDialog2* dialog2 = new CDialog2();
dialog2->Create(IDD_DIALOG2);
dialog2->ShowWindow(SW_SHOW);
this->ShowWindow(SW_HIDE);
}
在上面的代码中我正在为Dialog2类创建一个对象并试图显示.... 现在问题是,当我点击下一步它隐藏两个窗口..我能做什么..我尝试了几种类型,但它仍然没有工作..请不要建议我使用PropertySheet ..它将使用它,我知道......但出于某种原因我想使用Dialog Box
答案 0 :(得分:2)
您正在使用默认父窗口(NULL)创建dialog2:
dialog2->Create(IDD_DIALOG2);
但是你的默认父母似乎是对话框。而且由于你隐藏了dialog1,它是dialog2的父级,所以dialog2也是隐藏的。
找到主应用程序对话框的窗口(CWnd)(如果除了向导之外还有一个可见),或者使用桌面窗口作为父窗口。
例如:
dialog2->Create(IDD_DIALOG2, GetDesktopWindow());