如何使用MFC将两个对话框组合成一个组合对话框?

时间:2013-11-04 17:47:26

标签: c++ mfc

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

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

a busy cat

输出应如下所示: a busy cat

另外,我正在使用MFC c ++。我对此非常陌生,我真的很感激任何帮助!

这是我尝试做的,但只有主对话框会显示:

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

1 个答案:

答案 0 :(得分:2)

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

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

创建父对话框时,请为其指定样式WS_EX_CONTROLPARENT。这将有助于父母和孩子之间的键盘导航。

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