C++ 如何使用MFC将两个对话框合并为一个组合对话框?

C++ 如何使用MFC将两个对话框合并为一个组合对话框?,c++,mfc,C++,Mfc,目前,我的资源中有两个对话框模板 我想动态地将正确模板上的内容添加到 对话框位于左侧的模板上。我该怎么做 输出应如下所示: 也,我使用MFC C++。我对这个很陌生,我真的很感激任何帮助 以下是我尝试执行的操作,但只有主对话框会显示: MainDialogBox *mainDlg = new MainDialogBox(); subDialogBox *subDlg = new subDialogBox(mainDlg); 通过删除子对话框的标题栏和边框样式来更改子对话框模板。这将使它融入

目前,我的资源中有两个对话框模板

我想动态地将正确模板上的内容添加到 对话框位于左侧的模板上。我该怎么做

输出应如下所示:

也,我使用MFC C++。我对这个很陌生,我真的很感激任何帮助

以下是我尝试执行的操作,但只有主对话框会显示:

MainDialogBox *mainDlg = new MainDialogBox();
subDialogBox *subDlg = new subDialogBox(mainDlg);

通过删除子对话框的标题栏和边框样式来更改子对话框模板。这将使它融入并看起来像父对话框的一部分

然后将子对话框创建为无模式对话框,其父窗口为父对话框。(使用CDialog::Create创建一个无模式对话框。)如果您已经这样做了,但第二个对话框没有显示,则可能您没有设置“可见”样式

创建父对话框时,将其样式设置为WS_EX_CONTROLPARENT。这将有助于在父级和子级之间进行键盘导航


最后,您需要将子对话框放置在父对话框上所需的位置。父级可以将x、y点或矩形传递给对话框构造函数。然后,子对象(在OnInitDiialog中)可以通过调用SetWindowPos来定位自己。

我知道这没有帮助,但是您需要使用MFC吗?很遗憾,我必须这样做。有一种更简单的方法来定位嵌套子对象对话框。只需在父对话框中希望子对话框出现的位置创建一个静态“隐藏”文本框。给它一个不是IDC_STATIC的资源名。然后,您可以获得“隐藏”静态框的坐标,并使用它来定位子对话框。