找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1059|回复: 8

[求助]:如何关闭多文档???

[复制链接]
发表于 2005-11-18 16:29:40 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
当 SDI = 0  的时候:

打开多个.dwg文件,此时想关闭这些文件该如何操作??

请斑竹及高手指点一二,敬谢各位。

如果用

acDocManager->closeDocument(acDocManager->curDocument());

来关闭,只能关闭当前的,其他得不能关闭,该如何操作呀?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-11-18 17:26:10 | 显示全部楼层
当你关闭一个文档,另一个不就成为当前文档了吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-21 09:10:50 | 显示全部楼层
我是想连续关闭,用上面的代码还是认为第一个为当前文档,有别的方法吗?
请在指点指点,谢先。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-21 11:55:30 | 显示全部楼层
AcApDocManager *pDocMgr = acDocManagerPtr();

        AcApDocumentIterator  *pDocItr;
        pDocItr = pDocMgr->newAcApDocumentIterator();
        AcApDocument *pDoc;
        for(;!pDocItr->done();pDocItr->step())
        {
                        pDoc = pDocItr->document();
                        pDocMgr->closeDocument(pDoc);
        }
        delete pDocItr;
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-21 15:00:57 | 显示全部楼层
先谢过xysyr:
您的代码我试了,从跟踪的效果看,当前文档被删除了,但是CAD的运行结果还只是删除了当前的一个文档,其他的仍然没有删除,也不知道是为什么?难道还有其它的操作?比如更新之类的?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-21 15:54:21 | 显示全部楼层
extern long acdbSetDbmod(class AcDbDatabase* pDb, long newVal);

void CloseAllDoc()
{
        AcApDocManager *pDocMgr = acDocManagerPtr();

        AcApDocument *curDoc = pDocMgr->curDocument();
        AcApDocumentIterator  *pDocItr;
        pDocItr = pDocMgr->newAcApDocumentIterator();
        AcApDocument *pDoc;
        for(;!pDocItr->done();pDocItr->step())
        {
                pDoc = pDocItr->document();
                pDocMgr->setCurDocument(pDoc);
                pDocMgr->lockDocument(pDoc);
                acdbSetDbmod(pDoc->database(),0);
                pDocMgr->unlockDocument(pDoc);
                pDocMgr->closeDocument(pDoc);
        }
        delete pDocItr;

        return;
}

如果不行,该函数连续调用两次试试效果。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-21 18:56:03 | 显示全部楼层
还是不行呀,你说的文档的modified标志是什么意思,能否详细剖析一下
以前是关闭当前的,最新的,但现在关闭的是先打开的,也就是最老的,而且每次只关闭一个,不知道是什么原因。请再帮忙查一查,谢谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-11-22 08:22:35 | 显示全部楼层
不可以循环调用!!可用Timer试试!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-11-22 08:42:18 | 显示全部楼层
能否说的具体些,最好是有代码,谢谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-23 04:44 , Processed in 0.188026 second(s), 45 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表