2009-08-10 5 views
0

J'ai créé le projet MFC MDI avec la classe de base CFormView, le ruban, la barre de légende etc. Dans CMainFrame, OnCreate() appelle EnableMDITabbedGroups() qui ajoute automatiquement un onglet et attache la vue CMyProjectView. Maintenant, je veux ajouter un deuxième onglet et attacher la deuxième vue à cet onglet. J'ai créé une nouvelle boîte de dialogue et ajouté la classe dérivée CFormView.Comment attacher la classe dérivée de CFormView à CMFCTabCrtl?

Voici le code:

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); 

} 

Maintenant, je suis sûr que je manqué quelque chose de trivial ou suis allé dans la mauvaise direction tous ensemble, mais je ne peux pas obtenir de nouvelles en vue de se présenter. En outre, je ne peux pas attraper AFX_WM_CHANGE_ACTIVE_TAB ou AFX_WM_CHANGING_ACTIVE_TAB dans CMainFrame. Le message est envoyé depuis CMFCBaseTabCtrl :: FireChangingActiveTab mais rien ne se passe.

Répondre

0

WS_VISIBLE est manquant dans les styles de la vue? Vous pouvez également définir la vue active pour le cadre.

Questions connexes