Список документов в MDI приложении
|
Каждый шаблон документа содержит список всех документов своего типа. Мэнеджер документов содержит список всех шаблонов приложения. Таким образом можно сделать сначало перебор по всем шаблонам, а в каждом шаблоне сделать перебор по всем документам в приложении.
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) |