|
|
|
новичок
      
участник
Last Login: 14.07.2001 23:39
Сообщ.: 1,
Visits: 12
|
|
Может кто-нибудь подскажет, каким путем сделать задачку на Visual C++6: В MDI приложении, создаются или открываются несколько документов, требуется обработать информацию в некоторых документах и внести в них изменения. Количество открытых документов неизвестно. Как получить доступ к информации находящейся в этих документах ? Можно ли получить количество открытых документов, и как получить указатель на каждый документ?
|
|
|
|
|
Supreme Being
      
модератор
Last Login: 10.11.2008 0:08
Сообщ.: 1 298,
Visits: 12 501
|
|
Привет, посмотри вот здесь: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvcpp/html/msdn_mfcfaq50.asp
How do I get a list of open documents?
void CMyApp::GetDocumentList(CObList * pDocList) { ASSERT(pDocList->IsEmpty()); POSITION pos = m_templateList.GetHeadPosition(); while (pos) { CDocTemplate* pTemplate = (CDocTemplate*)m_templateList.GetNext(pos); POSITION pos2 = pTemplate->GetFirstDocPosition(); while (pos2) { CDocument * pDocument; if ((pDocument=pTemplate->GetNextDoc(pos2)) != NULL) pDocList->AddHead(pDocument); } } }
=======================================
MFC version 4.0 follows:
void CMyApp::DoSomethingToAllDocs() { CObList pDocList; POSITION pos = GetFirstDocTemplatePosition(); while(pos) { CDocTemplate* pTemplate = GetNextDocTemplate(pos); POSITION pos2 = pTemplate->GetFirstDocPosition(); while(pos2) { CDocument* pDocument; if(pDocument = pTemplate->GetNextDoc(pos2)) pDocList.AddHead(pDocument); } } if(!pDocList.IsEmpty()){ pos = pDocList.GetHeadPosition(); while(pos) { // Call some CDocument function for each document. ( (CDocument*)pDocList.GetNext(pos) ) ->UpdateAllViews(NULL); } }
С уважением, Владимир
|
|
|
|