2009-08-10 97 views
0

我已经创建了具有基类CFormView,功能区,标题栏等的MFC MDI项目。 在CMainFrame中,OnCreate()调用EnableMDITabbedGroups(),它自动添加一个选项卡 并附加CMyProjectView视图。现在我想添加第二个选项卡并将第二个视图添加到该选项卡。我创建了新的对话框,并向它添加了CFormView派生类。如何将CFormView派生类附加到CMFCTabCrtl?

下面是代码:

void CMainFrame::CreateViews() 
{ 
const CObList &tabGroups = GetMDITabGroups(); 
CMFCTabCtrl *wndTab = (CMFCTabCtrl*)tabGroups.GetHead(); 
wndTab->m_bEnableWrapping = TRUE; 

CRect dummyRect; 
CNewFormView *pNewView = (CNewFormView*)RUNTIME_CLASS(CNewFormView)->CreateObject(); 
((CWnd*)pNewView)->Create(NULL, NULL, WS_CHILD, dummyRect, wndTab, IDD_NEWFORMVIEW); 

wndTab->AddTab(pNewView, _T("NewTab"), -1, TRUE); 

} 

现在,我敢肯定,我错过了一些琐碎或走错了方向都在一起, 但我不能让新的视图展现出来。另外,我无法捕捉CMainFrame中的AFX_WM_CHANGE_ACTIVE_TAB或AFX_WM_CHANGING_ACTIVE_TAB。消息从CMFCBaseTabCtrl :: FireChangingActiveTab发送,但没有任何反应。

回答

0

视图样式中缺少WS_VISIBLE? 您可能也想要为该框架设置活动视图。