从CMDIFrameWndEx浮动(或分离)选项卡式CMDIChildWndEx窗口,任何想法?

时间:2016-07-17 12:48:32

标签: c++ windows visual-studio mfc mdi

在visual studio中,所有打开的编辑器窗口都在工作区中标签。当你右键单击一个时,菜单中有一个“浮动”选项。如果你浮动一个窗口,窗口就会从选项卡中分离出来,你可以将它拖到任何地方,毕竟你可以将它停靠在标签页上。

我创建了一个测试mdi项目,它不是默认行为。

我重写了ID_FILE_NEW命令并遵循OpenDocumentFile例程,从未找到框架将新创建的子框架窗口添加到选项卡的位置。

在OpenDocumentFile例程中,我碰到了一个CMFCTabCtrl类,并且有一个AddTab函数。

现在是AddTab功能:

virtual void AddTab(
   CWnd* pTabWnd,
   LPCTSTR lpszTabLabel,
   UINT uiImageId = (UINT)-1,,
   BOOL bDetachable = TRUE
);

virtual void AddTab(
   CWnd* pTabWnd,
   UINT uiResTabLabel,
   UINT uiImageId = (UINT)-1,
   BOOL bDetachable = TRUE
);

备注:

如果pTabWnd指向的对象不是从CDockablePane类派生的,而且

如果bDetachable为TRUE,框架会自动为pTabWnd对象创建一个包装器。

包装器使pTabWnd对象可拆卸。

默认情况下,包装器是CDockablePaneAdapter类的实例。

如果默认包装器提供的功能不可接受,

使用CMFCBaseTabCtrl :: SetDockingBarWrapperRTC方法指定不同的包装器。

仍然没有运气。

我确实尝试在运行中创建一个CView并将其附加到CDocument并将该CView放入CDockablePane.so我可以将旧的选项卡切换到新的可停靠的一个。它还没有工作。

那么有关从CMDIFrameWndEx中浮动选项卡式CMDIChildWndEx窗口的想法吗?

0 个答案:

没有答案