ObjectARX 不弹出提示保存dwg QSAVE

作者: admin 分类: C++,CAD,ObjectARX 发布时间: 2022-06-22 22:11

大家好,我想要求关闭指定的文件并且不让它提示已经修改的图片要保存,而最好是还原到原来的样子,就是不保存。

还有我想问非ARX的MFC工程怎么调用ARX工程中的函数。最好是ARX中的所有类是不是可以在MFC工程中用,比如它中间的函数,我在打开指定文件时用到acDocManager->executeInApplicationContext(OpenDoc, (void *)pData);

这个OpenDoc函数在这个中可以那样直接定义的,到了MFC中定义成什么函数呢?MFC中的类函数是一定不行了,我试了用做全局函数也不行,当然不知道全局函数还有什么,可能我的没写对,帮帮忙了

下面是我关闭指定文件的程序

 const char* strName = _T("D:\\liminghua\\aa.dwg");
 AcApDocumentIterator* pdociterator = acDocManager->newAcApDocumentIterator();
 for(; !pdociterator->done(); pdociterator->step())
 {
  AcApDocument* pdoc;  pdoc = pdociterator->document();
  const char* str = NULL;
  str = pdoc->docTitle();
  if (strcmp(str, strName)==0)
  {
   acDocManager->closeDocument(pdoc); //这里的关闭会提示保存
  }
 }

我想是不是可以这样当CAD弹出选择是否保存的窗口时怎么样它自动选择 “否”

谢谢大家了 在这的第一个贴

acdbSetDbmod(pIter->document()->database(), 0); // 关闭文档时不弹出保存对话框的实现的关键
Acad::ErrorStatus es = acDocManager->closeDocument(pIter->document());


大致是这样,先说明命令(/参数)类型比如 RTSTR 是指字符串,RTANG指角度,RTPOINT 指2D点,这些都定义在adscodes.h里,你可以去查;接下来是就是发送到命令行的参数(相当于手工输入到命令行的内容);最后以RTNONE结束命令调用。。

 acedCommand( RTSTR, "qsave", RTSTR, "~", RTNONE )表示命令行输入"qsave ~",似乎qsave后没有"~"参数。也许是程序编写都自定义的。。。

其他的命令很简单,可直接通过菜单来查看命令及其参数,就像LISP中的COMMAND,不同的是ARX中要先说明命令(/参数)类型。

比如画直线 acedCommand(RTSTR,"_line",RTPOINT ,2D点,RTPOINT,2D点,RTNONE )



发表评论

您的电子邮箱地址不会被公开。

标签云