www.pudn.com > 单文档多视图.rar > Sdiapp.cpp
// SDIAPP.cpp : Defines the class behaviors for the application.
//
#include "stdafx.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CSDIDocTemplate
IMPLEMENT_DYNAMIC(CSDIDocTemplate, CSingleDocTemplate)
CSDIDocTemplate::CSDIDocTemplate(UINT nIDResource, CRuntimeClass* pDocClass,
CRuntimeClass* pFrameClass, CRuntimeClass* pViewClass,
int nSplitterID, int nRow, int nCol) :
CSingleDocTemplate(nIDResource, pDocClass, pFrameClass, pViewClass)
{
m_nSplitterID = nSplitterID;
m_nRow = nRow;
m_nCol = nCol;
m_pView = NULL;
}
/////////////////////////////////////////////////////////////////////////////
// CSDIWinApp construction
IMPLEMENT_DYNAMIC(CSDIWinApp, CWinApp)
CSDIWinApp::CSDIWinApp()
{
}
CSDIDocTemplate* CSDIWinApp::GetTemplate(CView* pView)
{
POSITION pos;
CSDIDocTemplate* pTemplate = NULL;
pos = GetFirstDocTemplatePosition();
while (pos)
{
pTemplate = (CSDIDocTemplate*)GetNextDocTemplate(pos);
if (pTemplate->m_pView == pView) return pTemplate;
}
return NULL;
}
CSDIDocTemplate* CSDIWinApp::GetTemplate(CRuntimeClass *pViewClass)
{
POSITION pos;
CSDIDocTemplate* pTemplate = NULL;
pos = GetFirstDocTemplatePosition();
while (pos)
{
pTemplate = (CSDIDocTemplate*)GetNextDocTemplate(pos);
if (pTemplate->m_pView->IsKindOf(pViewClass)) return pTemplate;
}
return NULL;
}
CSDIDocTemplate* CSDIWinApp::GetFirstTemplate()
{
POSITION pos;
CSDIDocTemplate* pTemplate = NULL;
pos = GetFirstDocTemplatePosition();
pTemplate = (CSDIDocTemplate*)GetNextDocTemplate(pos);
ASSERT(pTemplate != NULL);
return pTemplate;
}