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"로 바꿔주세요...
나머지 코딩은 앞글의 소스그대로 사용하면 됨..
'Program Language > VisualC(MFC)' 카테고리의 다른 글
[VS Error] LINK : fatal error LINK1104: cannot open file "LIBC.lib" (0) | 2012.04.05 |
---|---|
AfxMessageBox("....") 메세지 띄우는 함수의타이틀(Title)을 변경하고자 할 경우.. (0) | 2007.04.30 |
MFC에서 Command Line의 값 받기.. (0) | 2006.12.04 |
DLL 에 있는 비트맵 리소스를 실행 파일로 가져오는 방법 3가지 (0) | 2006.11.28 |
윈도우 위에 새로운 윈도우 생성... (0) | 2006.11.22 |
윈도우 연산자 오류와 VxD 에러에 대한 코드정리 (0) | 2006.10.11 |