www.gusucode.com > VC++将对话框做为MDI子窗口的示例程序-源码程序 > VC++将对话框做为MDI子窗口的示例程序-源码程序/code/ChildFrm.cpp
// ChildFrm.cpp : implementation of the CChildFrame class // Download by http://www.NewXing.com #include "stdafx.h" #include "TSML.h" #include "TSMLView.h" #include "TSMLPicView.h" #include "ChildFrm.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CChildFrame IMPLEMENT_DYNCREATE(CChildFrame, CMDIChildWnd) BEGIN_MESSAGE_MAP(CChildFrame, CMDIChildWnd) //{{AFX_MSG_MAP(CChildFrame) ON_WM_SETFOCUS() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CChildFrame construction/destruction CChildFrame::CChildFrame() { // TODO: add member initialization code here } CChildFrame::~CChildFrame() { } BOOL CChildFrame::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Modify the Window class or styles here by modifying // the CREATESTRUCT cs if( !CMDIChildWnd::PreCreateWindow(cs) ) return FALSE; return TRUE; } ///////////////////////////////////////////////////////////////////////////// // CChildFrame diagnostics #ifdef _DEBUG void CChildFrame::AssertValid() const { CMDIChildWnd::AssertValid(); } void CChildFrame::Dump(CDumpContext& dc) const { CMDIChildWnd::Dump(dc); } #endif //_DEBUG ///////////////////////////////////////////////////////////////////////////// // CChildFrame message handlers //DEL void CChildFrame::CreateViewDoc() //DEL { //DEL // TODO: Add your command handler code here //DEL CView* pOldActiveView = GetActiveView(); //DEL //DEL ::SetWindowLong(pOldActiveView->m_hWnd, GWL_ID, m_nCurrentExample); //DEL //DEL CRuntimeClass* pNewViewClass; //DEL switch (m_DocType) //DEL { //DEL case 1://由不同的文档类型,调用不同的视类,下面是两个假设的视 //DEL pNewViewClass = RUNTIME_CLASS(CTSMLView); //DEL break; //DEL case 2: //DEL pNewViewClass = RUNTIME_CLASS(CTSMLPicView); //DEL break; //DEL default: //DEL ASSERT(0); //DEL return; //DEL } //DEL //DEL //创建新的视 //DEL CCreateContext context; //DEL context.m_pNewViewClass = pNewViewClass; //DEL context.m_pCurrentDoc = GetActiveDocument(); //DEL CView* pNewView = STATIC_DOWNCAST(CView, CreateView(&context)); //DEL if (pNewView != NULL) //DEL { //DEL // 创建成功则显示。 //DEL pNewView->ShowWindow(SW_SHOW); //DEL SetActiveView(pNewView); //DEL m_nCurrentExample = m_DocType; //DEL // 如果需要,可关闭当前视 //DEL pOldActiveView->DestroyWindow(); //DEL pNewView->OnInitialUpdate(); //DEL RecalcLayout(); //DEL } //DEL else //DEL { //DEL AfxMessageBox("显示失败"); //DEL } //DEL //DEL } //DEL void CChildFrame::OnView1() //DEL { //DEL m_DocType=1; //DEL CreateViewDoc(); //DEL } //DEL void CChildFrame::OnView2() //DEL { //DEL m_DocType=2; //DEL CreateViewDoc(); //DEL } void CChildFrame::OnSetFocus(CWnd* pOldWnd) { CMDIChildWnd::OnSetFocus(pOldWnd); // TODO: Add your message handler code here CMDIChildWnd::ActivateFrame(SW_SHOW); }