在 MFC 中拥有一个简单视图和一个拆分视图

Posted

技术标签:

【中文标题】在 MFC 中拥有一个简单视图和一个拆分视图【英文标题】:Have one simple view and one split view in MFC 【发布时间】:2014-11-20 15:24:32 【问题描述】:

我有一个多视图 SDI 项目。必须拆分其中一个视图,可能使用 CSplitterWnd 或 CSplitterWndEx。但是其他视图不应该被拆分,也不应该有拆分按钮和滚动条。我使用 CSplitterWnd 和一些从它派生的类(我在网上找到)尝试了各种组合,但我无法得到我需要的东西。所以这里有限制:

    一个视图是 CViewUnsplit,没有拆分器

    第二个视图最初只显示 CViewSplitLeft

    一个命令允许用户拆分/取消拆分以及添加或删除 CViewRight。

【问题讨论】:

您需要向我们展示您的尝试(在代码中)以及为什么它没有成功。 【参考方案1】:

它应该以下列方式工作。

    第一个是 CViewUnsplit 就是一个简单的 SDI 应用程序出现的方式。

    只需交换视图即可轻松实现第二个切换视图。这是有据可查的。 此示例中显示了基础知识,其中包含两个视图 http://msdn.microsoft.com/en-us/library/s199bks0.aspx

    第三个有点棘手。只需创建拆分器并将带有 SetParent 的 CViewSplitLeft 放入左侧拆分器部分。正确的视图可以始终留在拆分器中。同样在这里,拆分器只是隐藏在主窗口中。当您切换回另一个视图时,只需再次使用 SetParent 并将 CViewSplitLeft 移动到 CMainFrame。

始终只隐藏所有不需要的视图。 请注意示例中显示的视图的 ID。否则调整大小将不起作用。

【讨论】:

以上是关于在 MFC 中拥有一个简单视图和一个拆分视图的主要内容,如果未能解决你的问题,请参考以下文章

在 mfc vs2010 运行时替换拆分器窗口中的视图

如何在 Eclipse IDE 中拆分和取消拆分窗口/视图?

如何用3个视图拆分MFC对话框?

MFC单文档多视图程序设计与Splitter拆分窗口

如何用 3 个视图拆分 MFC 对话框?

拆分已拆分的窗格 (MFC)