在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窗口的想法吗?