0

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

这是代码:

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 发送,但没有任何反应。

4

1 回答 1

0

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

于 2009-11-18T17:16:10.163 回答