Каждый шаблон документа содержит список всех документов своего типа. Мэнеджер документов содержит список всех шаблонов приложения. Таким образом можно сделать сначало перебор по всем шаблонам, а в каждом шаблоне сделать перебор по всем документам в приложении.
void DocumentList()
{
CDocManager* pDocManager = AfxGetApp()->m_pDocManager;
POSITION posTemplate = pDocManager->GetFirstDocTemplatePosition();
while(posTemplate)
{
CDocTemplate* pDocTemplate = pDocManager->GetNextDocTemplate(posTemplate);
POSITION posDoc = pDocTemplate->GetFirstDocPosition();
while(posDoc)
{
CDocument* pDoc = pDocTemplate->GetNextDoc(posDoc);
// Здесь можно сделать то, что нужно с каждым документом.
// Если нужен какой-то определенный тип документов,
// для этого можно воспользоваться runtime классом.
// Вот пример как это сделать:
if(pDoc->IsKindOf(RUNTIME_CLASS(CMyDocument)))
{
// CMyDocument - это ваш класс документа.
}
}
}
} Примечание:
Для того чтобы в документе был объявлен runtime class, необходимо вставить в объявление документа как минимум макрос DECLARE_DYNAMIC(CMyDocument) А в файл реализации класса IMPLEMENT_DYNAMIC(CMyDocument, CDocument)
Если есть какие-то замечания, предложения или что-то еще, то пишите:
leprecon@pisem.net.
|