c++ - MFC如何将两个对话框合并为一个对话框?

标签 c++ mfc

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

我想把右边模板上的内容动态添加到 左侧模板对话框。我该怎么做?

a busy cat

输出应该是这样的: a busy cat

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

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

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

最佳答案

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

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

当您创建父对话框时,为其指定样式 WS_EX_CONTROLPARENT。这将有助于 parent 和 child 之间的键盘导航。

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

关于c++ - MFC如何将两个对话框合并为一个对话框?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19773840/

相关文章:

c++ - 更改 CMFCListCtrl 的默认排序箭头

C++ 字符串类型独立算法

c++ - 将双字节字符转换为整数 C++

c++ - 函数名称别名

c++ - 为 LONGLONG 类型分配默认值。 Mingw GCC

c++ - 使用C++中的Delete避免内存泄漏

c# - MFC 和 C# 中的信号量、临界区、互斥量示例

c++ - CWnd::Create 会产生一个新线程吗?

c++ - "if (getline(fin, str)) {}"是否符合C++11标准?

c++ - 二维传热有限元库