void EnumAllView(CDocument*pDoc)
//遍历文档关联的视图
{
POSITION pos=pDoc->GetFirstViewPosition();
while (pos)
{
CView*pView=pDoc->GetNextView(pos);
/**/
}
}
void EnumAllDocment(CDocTemplate*pDocTemp)
//遍历文档模板对应的文档
{
POSITION pos=pDocTemp->GetFirstDocPosition();
while (pos)
{
CDocument*pDoc=pDocTemp->GetNextDoc(pos);
if (pDoc)
{
EnumAllView(pDoc);
}
}
}
void EnumAllDocTemp()
//遍历应用程序的文档模板
{
CDocManager*pDocMan=AfxGetApp()->m_pDocManager;
if (!pDocMan)
{
return ;
}
POSITION pos=pDocMan->GetFirstDocTemplatePosition();
while (pos)
{
CDocTemplate*pDocTemp=pDocMan->GetNextDocTemplate(pos);
if (pDocTemp)
{
EnumAllDocment(pDocTemp);
}
}
}
本文提供了一个MFC应用程序中遍历所有文档模板、文档及视图的示例代码。通过递归的方式实现了对MFC框架内的各种资源进行遍历,便于开发者理解MFC的文档视图架构。

被折叠的 条评论
为什么被折叠?



