如何将 MFC CFormView 放置在 VS 2008 MFC 功能包中引入的 CDockablePane 中?
5 回答
检查BCGSoft示例以使用 cview 执行此操作。类名略有不同,但它们或多或少是相同的东西,因为它们向 Microsoft 提供了 CDockablePane。
我在 MFC Feature Pack 示例中找不到此类示例。
所有包含 CFormView 的项目是:
TasksPane TabControl TabbedView StatusBarDemo SetPaneSize MenuSubSet
但是在任何项目中,CFormView 都没有嵌入到 CDockablePane 中。
这辆出租车可能是个线索。
http://www.codeproject.com/KB/toolbars/sizecbar.aspx
虽然它没有使用 CDockablePane,但其背后的概念是相同的。我还没有尝试过页面中解释的 CDockablePane 和 CFormView 工作,但看了一眼,我觉得事情很相似。
有一个功能包示例可以执行此操作。
但是,我所做的如下:我创建了一个 CDialog 派生类,并将其放入 DockablePane 中。然后我创建了一个 CFormView 派生类,并将该类的一个实例作为可停靠窗格的成员变量。我感兴趣的每个函数(很可能是 UpdateView() 或任何它的名称),我都会转发到 CDialog 派生类。这样我就可以避开将文档/视图结构硬塞到我的应用程序中的困难,并且仍然可以获得好处。
实际上有几种方法可以做到这一点。
如果您派生自己的 CFameWnd 类,然后将该类的实例放在 CDockable 窗格中,您现在可以将所需的任何类型的框架放入该 CFrameWnd 派生类中。
诀窍是确保您以正确的顺序进行创建。如果您尝试尽早调用它,那么您的内部视图将永远不会被创建。