单个文档 Windows 应用程序中的多个“窗格”视图

Posted

技术标签:

【中文标题】单个文档 Windows 应用程序中的多个“窗格”视图【英文标题】:Multiple "panes" view in single document Windows application 【发布时间】:2016-09-14 07:05:17 【问题描述】:

我正在尝试为游戏场景编写一个编辑器。到目前为止,我可以在一个窗口中展示结果。但是,我希望有几个“窗格”,例如用于材料属性或资源预览。

Blender 布局就是一个很好的例子:

我知道 MFC 和 WinAPI,我宁愿使用 Qt,因为它不是免费的。

【问题讨论】:

那些侧边栏窗口可以是 CControlbar 窗口、CPane 窗口……而 MFC 可以做到这一点。有什么问题? 我认为问题是,我不想使用Dialog窗口。我正在使用 Document-View 单文档方法。所以你在说什么,那些东西是控制?喜欢按钮?然后你把它们添加到我的主视图中?我宁愿认为我需要单独的窗口(从 CWnd 派生)并以某种方式拆分视图.... 继续创建多个窗口。 不,一旦您创建了一个 SDI 应用程序,这些侧边栏窗口可能是 CPaneWnd,它可能具有您想要的行为(停靠、拖放、隐藏、自动隐藏等),并且您可以在其中放置任何控件在他们。创建 SDI 应用程序时,只需在第 6 步中选中“高级框架窗格”即可。 注意,您可以添加任意数量的 CPaneWnd,尽管向导允许您添加任何类型的窗格窗口。如何 ?创建所需窗格后,在项目创建后手动添加(编写代码)。 【参考方案1】:

我是在商业应用程序上做的,效果很好:

    创建单一文档应用程序 阅读 CDockablePane,然后查看 MFC 功能包示例。 最终实现 CDockablePanes 及其内容 通过将它们停靠到您自己的CFrameWndEx-派生类来按照您想要的方式排列它们。

【讨论】:

以上是关于单个文档 Windows 应用程序中的多个“窗格”视图的主要内容,如果未能解决你的问题,请参考以下文章

单个文档中的多个文档或数组

Windows Terminal——安装并配置主题

Windows Terminal——安装并配置主题

单个 jasper 文档中的多个查询

从 MongoDB 和 Mongoose 中的多个文档创建单个文档

多线程在 C++ 中的 Windows 中将多个客户端连接到单个服务器