멀티뷰 구현..
void CMainFrame::OnViewerFirst()
{
if(GetActiveView()->IsKindOf(RUNTIME_CLASS(CFirstDlg)))
return;
SwitchForm(IDD_FIRST_DIALOG);
}
void CMainFrame::SwitchForm(int nForm)
{
CView *pOldActiveView = GetActiveView();
CView *pNewActiveView = (CView *)GetDlgItem(nForm);
CCreateContext context;
switch(nForm)
{
case IDD_MULTIVIEWER_FORM :
pNewActiveView = (CView *) new CMultiViewerView;
break;
case IDD_FIRST_DIALOG :
pNewActiveView = (CView *) new CFirstDlg;
break;
case IDD_SECOND_DIALOG :
pNewActiveView = (CView *) new CSecondDlg;
break;
case IDD_THIRD_DIALOG :
pNewActiveView = (CView *) new CThirdDlg;
break;
}
context.m_pCurrentDoc = pOldActiveView->GetDocument();
pNewActiveView->Create(NULL, NULL, 0L, CFrameWnd::rectDefault, this, nForm, &context);
pNewActiveView->OnInitialUpdate();
SetActiveView(pNewActiveView);
pNewActiveView->ShowWindow(SW_SHOW);
delete pOldActiveView;
pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
RecalcLayout();
}
참고...
FormView 베이스의 Dialog를 만든 후...
이 다이알로그의 "Dialog Properties"에..
Style을 "Popup"에서 "Child"로 바꿔주세요...
나머지 코딩은 앞글의 소스그대로 사용하면 됨..