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);
	
}