单文档窗口产生一个的新的单文档窗口怎么实现

单文档窗口产生一个的新的单文档窗口如何实现?
应用程序首先显示一个单文档窗口,单击某个按扭显示另一个不同的单文档窗口,该怎么实现呢?
这两个窗口如何进行消息响应?



------解决方案--------------------
1、生成子框架和子视图
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// SubFrame.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CSubFrame frame
//class CViewTwo;

class CSubFrame : public CFrameWnd
{
DECLARE_DYNCREATE(CSubFrame)
protected:

// Attributes
public:
CSplitterWnd m_wndSplitter2;

// Operations
public:
CSubFrame();
virtual ~CSubFrame();


// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CSubFrame)
public:
virtual BOOL Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect,
CWnd* pParentWnd, UINT nID, CCreateContext* pContext);
protected:
virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);
//}}AFX_VIRTUAL

// Implementation
protected:

// Generated message map functions
//{{AFX_MSG(CSubFrame)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// ViewTwo.h : header file
//

/////////////////////////////////////////////////////////////////////////////
// CViewTwo view

class CViewTwo : public CView
{
protected:
DECLARE_DYNCREATE(CViewTwo)

// Attributes
public:

// Operations
public:
CViewTwo(); // protected constructor used by dynamic creation

// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CViewTwo)
protected:
virtual void OnDraw(CDC* pDC); // overridden to draw this view
//}}AFX_VIRTUAL

// Implementation
protected:
virtual ~CViewTwo();
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif

// Generated message map functions
protected:
//{{AFX_MSG(CViewTwo)
afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};

#ifndef _DEBUG // debug version in ViewTwo.cpp
inline CTwoViewDoc* CViewTwo::GetDocument()
{ return (CTwoViewDoc*)m_pDocument; }
#endif

2、