' MFC ' CDocManager. MFC. , 䳿 . ' , CWinApp. ' CWinApp ' CDocManager. - CWinApp, ', ( ' CDocManager). ' CWinApp - m_pDocManager. , , - .
(document manager) ' ' . (public) - m_TemplateList. , :
void CSampleWinApp::IterateEveryTemplate ()
{
CDocManager* pManager = AfxGetApp()->m_pDocManager;
if (pManager == NULL) return;
POSITION pos = pManager->GetFirstDocTeraplatePosition();
while (pos!= NULL)
{
//
CDocTemplate* pTemplate =pManager->GetNextDocTemplate(pos);
//
DoSomething(pTemplate);
}
}
, , . , . , , . , , :
void CSampleWinApp::IterateEveryDocument()
{
CDocManager* pManager = AfxGetApp()->m_pDocManager;
if (pManager == NULL) return;
POSITION posTemplate = pManager->GetFirstDocTemplatePosition();
while (posTemplate!= NULL) {
//
CDocTemplate* pTemplate
= pManager->GetNextDocTemplate(posTemplate);
POSITION posDoc = pTemplate->GetFirstDocPosition{);
while (posDoc!= NULL) {
CYourDocument* pThisOne
= (CSampleDocument*) GetNextDoc(posDoc);
//
pThisOne->SomeFunctionCall();
}
}
}
, , AfxGetApp ' . - m_jDDocManager . , , , - CSampleWinApp; , ', AfxGetApp. , - m_pDocManager . ' ' , , AfxGetApp.
, - GetFirstDocTeraplatePosition GetNextDocTemplate CDocManager, , 䳿 䳿 - GetFirstViewPosition TetNextView CDocument, . GetNextDocTemplate, ( POSITION). , (runtime casting), ' CDocument CSampleDocument. IsKindOf MFC DYNAMIC_DOWNCAST, , , . .