在 MFC MDI 应用程序中级联特定窗口

Posted

技术标签:

【中文标题】在 MFC MDI 应用程序中级联特定窗口【英文标题】:Cascading specific windows in a MFC MDI application 【发布时间】:2010-08-09 12:38:17 【问题描述】:

一个 MDIParent Wnd 有很多 MDIchild Wnd,还有几个子对话框。

以这种方式创建对话框 --- CAutoDlg *pDlg = 新 CAutoDlg; pDlg->创建(IDD_AUTOCARD,this);

我只想级联特定类型的对话框,例如 CAutoDlg 类型的对话框。

如果我给 MDICascade() 它将级联 MDIFrame 下的所有子窗口和对话框。 除了根据前一个对话框的位置为每个对话框调用 SetWindowPos 之外,还有其他非常规的方法吗?

【问题讨论】:

【参考方案1】:

没有直接的方法可以做到这一点。您可以将CAutoDlg 收集到某个容器中。使用该容器调用适当的函数进行级联。您可以使用CAutoDlg 的构造函数将对话框对象添加到该容器中,并使用析构函数从容器中删除对话框引用。

【讨论】:

以上是关于在 MFC MDI 应用程序中级联特定窗口的主要内容,如果未能解决你的问题,请参考以下文章

MFC - 当最大化子窗口的标题很长时,MDI 主框架标题被截断

MFC项目组合:如何将没有文档类的SDI应用程序添加到MDI应用程序中?应该使用子窗口吗?[MFC]

关闭 MFC MDI 应用程序中的所有子窗口

使用具有多个***窗口的 MFC MDI

C++,MFC MDI,激活特定选项卡

MFC/VC 在多文档MDI程序中 子窗口初始最大化显示 如何去掉菜单栏右侧的最小化及向下还原按钮