MFC界面开发帮助文档——BCG MDI选项卡组

点击“了解更多”获取BCGControlBar Pro for MFC v30.6正式版下载
BCGControlBar ("Business Components Gallery ControlBar")是MFC扩展库 , 使您可以创建具有完全自定义选项(功能区、可自定义工具栏、菜单等)以及一组专业设计的丰富Microsoft Office和Microsoft Visual Studio的应用程序 GUI控件 , 例如图表、日历、网格、编辑器、甘特图和许多其他控件 。
BCGControlBar库拥有500多个经过全面设计、测试和充分记录的MFC扩展类 。我们的组件可以轻松地集成到您的应用程序中 , 并为您节省数百个开发和调试时间 。
MDI Tabbed Groups接口取代了由版本7.20之前的库实现的常规MDITabs接口 , 它允许创建一个或多个选项卡式窗口(或选项卡式组)来代替MDI客户区 , 带选项卡的窗口可以垂直或水平对齐 , 并可以通过分隔符分开 。
主要功能:

  • 能够动态创建一个或多个选项卡式窗口或使用库的API 。
  • 选项卡式窗口的水平或垂直对齐 。
  • 选项卡式窗口由分隔符分隔 , 拆分器允许用户调整选项卡式窗口的大小 。
  • 能在组之间拖动单个选项卡 。
  • 能拖动单个标签并创建新组 。
  • 能使用上下文菜单移动选项卡或创建新组 。
  • 能保存和加载选项卡式窗口的布局 。
  • 用于保存和加载文档列表的选项(也适用于任何MDI接口) 。
  • 能将MDI子项拖到paremt框架之外并创建新的顶级框架("MDI tear-off") 。
  • 可以访问各个选项卡式组并修改其参数 。
如何启用以上功能:
  • 为启用MDI选项卡式组功能使用 CBCGPMDIFrameWnd::EnableMDITabbedGroups, 第二个参数是CBCGPMDITabParams类的实例 。 您可以填充它 , 也可以保留默认值 , 然后再传递给CBCGPMDIFrameWnd::EnableMDITabbedGroups 。
CBCGPMDITabParams params;params.m_nTabBorderSize = 1;EnableMDITabbedGroups (TRUE, params);
【MFC界面开发帮助文档——BCG MDI选项卡组】如果需要在运行时更改上述任何参数 , 则只需填充CBCGPMDITabParams对象 , 然后再次调用CBCGPMDIFrameWnd::EnableMDITabbedGroups 。
  • 您可以使用const CBCGPMDIFrameWnd::GetMDITabGroups方法获取选项卡式窗口列表 。
  • CBCGPMDIFrameWnd::MDITabNewGroup在激活组旁边创建一个新的选项卡式组 。
  • CBCGPMDIFrameWnd::MDITabMoveToNextGroup移动激活窗口到下一个或上一个组 。
  • CBCGPMDIFrameWnd::IsMemberOfMDITabGroup决定pWnd在其他选项卡式窗口中是否存在 。
  • CBCGPMDIFrameWnd::AreMDITabs决定是否启用常规的MDITabs或MDI选项卡式组功能 , 您也可以使用BOOL CBCGPMDIFrameWnd::IsMDITabbedGroup 常量显式测试MDI Tabbed Groups功能 。
  • 覆盖主框架中的派生类 CBCGPMDIFrameWnd::OnShowMDITabContextMenu , 当用户单击一个选项卡或将一个选项卡拖放到另一个选项卡组上时 , 它允许显示弹出菜单 。
  • 调用CBCGPMDIFrameWnd::LoadMDIState和CBCGPMDIFrameWnd::SaveMDIState以便加载和保存MDI选项卡式组的布局 , 另外如果您需要加载/保存打开的文档列表(适用于任何MDI接口) , 则应调用这些方法 。
  • 为了加载/保存MDI选项卡和组状态以及打开的文档列表 , 您需要执行以下操作:当主框架被关闭时 , 调用CBCGPMDIFrameWnd::SaveMDIState 。 创建主框架时 , 调用CBCGPMDIFrameWnd::LoadMDIState, 建议此调用的位置是在第一次显示主框架之前(参阅CBCGPVisualStudioGUIDemoApp::InitInstance()) 。 使用EnableLoadWindowPlacement (FALSE);在pMainFrame->LoadFrame(IDR_MAINFRAME);之前在CBCGPMDIFrameWnd::LoadMDIState 之后使用 CBCGPWorkspace::ReloadWindowPlacement (pMainFrame)将主框架显示在注册表中存储的位置 。 如果您的应用程序显示未存储为文件的文档 , 则重写CBCGPMDIChildWnd - 派生类中的CBCGPMDIChildWnd::GetDocumentName , 返回的字符串将作为文档标识符保存在注册表中 , CBCGPMDIChildWnd中的基本实现返回从CDocument :: GetPathName获得的值 。 覆盖 CBCGPMDIFrameWnd::CreateDocumentWindow, 以便在从注册表中加载文档时正确地创建它们 。参数“ lpcszDocName”是先前从CBCGPMDIChildWnd :: GetDocumentName返回的字符串 。

MFC界面开发帮助文档——BCG MDI选项卡组文章插图