【发布时间】:2010-09-21 13:02:30
【问题描述】:
如何将 MFC CFormView 放置在 VS 2008 MFC 功能包中引入的 CDockablePane 中?
【问题讨论】:
标签: c++ mfc mfc-feature-pack
如何将 MFC CFormView 放置在 VS 2008 MFC 功能包中引入的 CDockablePane 中?
【问题讨论】:
标签: c++ mfc mfc-feature-pack
检查BCGSoft 示例以使用 cview 执行此操作。类名略有不同,但它们或多或少是相同的,因为它们向 Microsoft 提供了 CDockablePane。
【讨论】:
我在 MFC 功能包示例中找不到此类示例。
所有包含 CFormView 的项目都是:
任务窗格 选项卡控件 选项卡式视图 状态栏演示 设置窗格大小 菜单子集
但是在任何项目中,CFormView 都没有嵌入到 CDockablePane 中。
【讨论】:
有一个功能包示例可以做到这一点。
但是,我所做的如下:我创建了一个 CDialog 派生类,并将其放入 DockablePane 中。然后我创建了一个 CFormView 派生类,并将该类的一个实例作为可停靠窗格的成员变量。我感兴趣的每个函数(很可能是 UpdateView() 或任何它的名称),我都会转发到 CDialog 派生类。这样我就可以避开将文档/视图结构硬塞到我的应用程序中的困难,并且仍然可以获得好处。
【讨论】:
实际上有几种方法可以做到这一点。
如果您派生自己的 CFameWnd 类,然后将该类的一个实例放入 CDockable 窗格中,您现在可以将您想要的任何类型的框架放入该 CFrameWnd 派生类中。
诀窍是确保您以正确的顺序进行创建。如果您尝试尽早调用它,那么您的内部视图将永远不会被创建。
【讨论】:
这辆出租车可能是个线索。
http://www.codeproject.com/KB/toolbars/sizecbar.aspx
虽然它没有使用CDockablePane,但其背后的概念是一样的。 CDockablePane 和 CFormView 的工作我还没有尝试过页面中解释的那样,但看了一眼,我觉得事情很相似。
【讨论】: