VC2010 多文档选项卡模式的2个应用

1、去掉Tab选项卡上的关闭功能,图标"x"不显示

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{

...  ...
//下面设置了子框架上Tab选项卡的一些参数
 CMDITabInfo mdiTabParams;
 mdiTabParams.m_style = CMFCTabCtrl::STYLE_3D_ONENOTE;
// 设置m_bActiveTabCloseButton 为 FALSE 会将关闭按钮放置在选项卡区域的右侧,为了去掉关闭,这里必须设置为FALSE
 mdiTabParams.m_bActiveTabCloseButton = FALSE;      
 mdiTabParams.m_bTabIcons = FALSE;    
 mdiTabParams.m_bAutoColor = TRUE;   
 mdiTabParams.m_bDocumentMenu = FALSE; 
//设置为FALSE,取消关闭功能
 mdiTabParams.m_bTabCloseButton=FALSE;
 EnableMDITabbedGroups(TRUE, mdiTabParams);
...  ...

}

 

2、隐藏某个视图及Tab标签

在CChildFrame里有一个指针,指向一个MFCTabCtrl控制,用于实现选项卡来管理所有子框架窗口:

                  CMFCTabCtrl* m_pRelatedTabGroup;

在CMainFrame第一次次创建CChildFrame实例的时候,会在堆中创建一个CMFCTabCtrl实例。以后创建

CChildFrame的时候,把CChildFrame对象加入MFCTabCtrl的控制列表里,并把这个MFCTabCtrl的指针

传给CChildFrame,所以所有的CChildFrame共用一个MFCTabCtrl控制。

 

要隐藏某个视图,实际上是隐藏其CChildFrame窗口,必须在CChildFrame定义2个全局(静态成员)变量,用

来记录要隐藏的框架窗口。

CWnd *CChildFrame::pWnd;
CString CChildFrame::strCurTabLabel;
void CChildFrame::OnHide()
{
 CMFCTabCtrl* pRelatedTabWnd = this->GetRelatedTabGroup();
 pWnd = pRelatedTabWnd->GetTabWnd(0); 
 pRelatedTabWnd->GetTabLabel(0, strCurTabLabel);
 pRelatedTabWnd->RemoveTab(0);
}
void CChildFrame::OnShow()
 CMFCTabCtrl* pRelatedTabWnd = this->GetRelatedTabGroup();
 pRelatedTabWnd->InsertTab(pWnd,strCurTabLabel,0);
 pRelatedTabWnd->ShowWindow(SW_SHOWNA);
 pRelatedTabWnd->SetActiveTab(0);
}

 

 

你可能感兴趣的:(MFC)