MFC一个父对话框,多个子对话(MFC one parent dialog, multiple ch

2019-10-19 05:38发布

我想建立一个MFC应用程序,其中一个主要的对话,和所有其他对话框此主对话框的孩子(和嵌入它)。

现在,我能够嵌入的第一个孩子在主对话框中,但我想传递给下一个对话框(注意,打开的对话框中的顺序是随机的),所以我需要隐藏第一个对话框并显示另一个。 要知道哪个对话框此刻的显示和隐藏它,我一直在使用一个试图CDialog变量来保存当前打开的对话框中,但我得到一个CObject::operator =' : cannot access private member declared in class 'CObject'错误。

是否有另一种方式做到这一点“隐藏和显示对话框”的游戏?

编辑:我能保存对话框的一些ID,并用它来acomplish这个任务?

Answer 1:

所以我设法使用类缺碘来完成这个任务。

首先,我保存最后打开的对话框的IDD

m_dlgStartPage.Create(CStartPageDlg::IDD, this);
m_openedWin.nDialogIDD = m_dlgStartPage.IDD;
m_dlgStartPage.ShowWindow(SW_SHOW);

然后,当一个新的对话框需要显示,我发信息给我的主对话框( nIDD挂起对话框显示的IDD):

AfxGetApp()->m_pMainWnd->SendMessage(WM_COMMAND_CHANGE_WINDOW, nIDD, 0);

而在去年,在我的主对话框中,我分析所有的子窗口,并检查是否m_openedWin.nDialogIDD每个对话框的IDD相匹配,所以我可以将其隐藏。 在此之后,我再一次解析所有的CHID对话框,并使用nIDD从发送的消息,以显示正确的。

我真的不喜欢这种方式,因为所有的解析和发送的邮件到主对话框的类,所以如果任何人有一个更好的主意或方法,请张贴。



文章来源: MFC one parent dialog, multiple child dialogs
标签: c++ mfc