views:

444

answers:

1

I have created MFC MDI project with base class CFormView, ribbon, caption bar etc. In CMainFrame, OnCreate() calls EnableMDITabbedGroups() which automatically adds one tab and attaches CMyProjectView view. Now I want to add second tab and attach second view to that tab. I created new dialog and added CFormView derived class to it.

Here is the 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);

}

Now, I'm pretty sure I missed something trivial or went in wrong direction all together, but I can't get new view to show up. Also, I can't catch AFX_WM_CHANGE_ACTIVE_TAB or AFX_WM_CHANGING_ACTIVE_TAB in CMainFrame. Message gets send from CMFCBaseTabCtrl::FireChangingActiveTab but nothing happens.

A: 

WS_VISIBLE is missing from the view's styles? You may want to set the active view for the frame too.

Sheng Jiang 蒋晟