【问题标题】:How can I place a MFC CFormView inside a CDockablePane?如何在 CDockablePane 中放置 MFC CFormView?
【发布时间】:2010-09-21 13:02:30
【问题描述】:

如何将 MFC CFormView 放置在 VS 2008 MFC 功能包中引入的 CDockablePane 中?

【问题讨论】:

    标签: c++ mfc mfc-feature-pack


    【解决方案1】:

    检查BCGSoft 示例以使用 cview 执行此操作。类名略有不同,但它们或多或少是相同的,因为它们向 Microsoft 提供了 CDockablePane。

    【讨论】:

    • 我在那里只看到二进制文件,没有样本的来源。
    【解决方案2】:

    我在 MFC 功能包示例中找不到此类示例。

    所有包含 CFormView 的项目都是:

    任务窗格 选项卡控件 选项卡式视图 状态栏演示 设置窗格大小 菜单子集

    但是在任何项目中,CFormView 都没有嵌入到 CDockablePane 中。

    【讨论】:

      【解决方案3】:

      有一个功能包示例可以做到这一点。

      但是,我所做的如下:我创建了一个 CDialog 派生类,并将其放入 DockablePane 中。然后我创建了一个 CFormView 派生类,并将该类的一个实例作为可停靠窗格的成员变量。我感兴趣的每个函数(很可能是 UpdateView() 或任何它的名称),我都会转发到 CDialog 派生类。这样我就可以避开将文档/视图结构硬塞到我的应用程序中的困难,并且仍然可以获得好处。

      【讨论】:

        【解决方案4】:

        实际上有几种方法可以做到这一点。

        如果您派生自己的 CFameWnd 类,然后将该类的一个实例放入 CDockable 窗格中,您现在可以将您想要的任何类型的框架放入该 CFrameWnd 派生类中。

        诀窍是确保您以正确的顺序进行创建。如果您尝试尽早调用它,那么您的内部视图将永远不会被创建。

        【讨论】:

          【解决方案5】:

          这辆出租车可能是个线索。

          http://www.codeproject.com/KB/toolbars/sizecbar.aspx

          虽然它没有使用CDockablePane,但其背后的概念是一样的。 CDockablePane 和 CFormView 的工作我还没有尝试过页面中解释的那样,但看了一眼,我觉得事情很相似。

          【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-12-16
          • 1970-01-01
          • 2013-12-10
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多