0

基本クラスの CFormView、リボン、キャプション バーなどを使用して MFC MDI プロジェクトを作成しました。次に、2 番目のタブを追加し、2 番目のビューをそのタブにアタッチします。新しいダイアログを作成し、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 に答える