CAD 二次开发遍历全部已打开文档
1. ObjectArx方式
ObjectArx利用acDocManager进行文档管理,而当前文档则利用curDoc()指针进行管理,F12刨根问底
需要遍历全部文档时,直接利用遍历器即可
AcApDocumentIterator* pIt=acDocManager->newAcApDocumentIterator();
for (;!pIt->done();pIt->step())
{
str.Format(_T("\n成功添加反应器:%s"),pIt->document()->fileName());
acutPrintf(str);
}
delete pIt;
pIt=NULL;
说明:不同于顶点遍历器,文档遍历器没有start()方法,循环时默认即可。
2. C#.net方式
CAD.net的文档管理对象为DocumentCollection,F12:
发现,C#中的DocumentCollection是对arx中的AcApDocManager进行的封装。遍历时,只需要获取文档集合对象即
DocumentCollection docs = acadApp.DocumentManager;
foreach (Document doc in docs)
{
docs.MdiActiveDocument.Editor.WriteMessage("已经打开的文档名称为:" + doc.Name);
}