2009-08-10 10 views
0

Ich habe MFC MDI-Projekt mit Basisklasse CFormView, Multifunktionsleiste, Titelleiste usw. In CMainFrame erstellt OnCreate() EnableMDITabbedGroups(), die automatisch eine Registerkarte hinzufügt und CMyProjectView-Ansicht anfügt. Jetzt möchte ich eine zweite Registerkarte hinzufügen und eine zweite Ansicht an diese Registerkarte anhängen. Ich habe einen neuen Dialog erstellt und die von CFormView abgeleitete Klasse hinzugefügt. HierWie füge CFormView abgeleitete Klasse an CMFCTabCrtl?

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

} 

Nun, ich bin mir ziemlich sicher, dass ich etwas verpasst trivial oder ging in die falsche Richtung alle zusammen, aber ich kann nicht neue Ansichten zu zeigen. Außerdem kann ich AFX_WM_CHANGE_ACTIVE_TAB oder AFX_WM_CHANGING_ACTIVE_TAB in CMainFrame nicht abfangen. Die Nachricht wird von CMFCBaseTabCtrl :: FireChangingActiveTab gesendet, aber nichts passiert.

Antwort

0

WS_VISIBLE fehlt in den Stilen der Ansicht? Vielleicht möchten Sie auch die aktive Ansicht für den Rahmen festlegen.

Verwandte Themen