h2023197 发表于 2005-4-17 10:43:00

通过按钮关闭AUTOCAD?

在中,无模式对话框上的按钮关闭,点击把AUTOCAD关闭,该如何作啊?
AUTOCAD直接关闭,默认是"不保存",不要再选择什么"是否要保存"的对话框了!
高手指教!!!

梦幻神话 发表于 2005-4-21 09:46:00

用IDocument的close()方法就可以实现........................

h2023197 发表于 2005-4-24 10:12:00

我不大清楚你说的这个,能详细的说一下吗?
谢谢

梦幻神话 发表于 2005-4-25 16:34:00

IDocument 是CAD的一个接口,利用这个接口的方法close()可以实现
IDocument IDoc;
        IDoc.AttachDispatch(IApp.get_ActiveDocument());
IDoc->close(vFull,vNull);

h2023197 发表于 2005-4-25 19:17:00

这个IDocument用的时候需要什么头文件吗?
编译时不认啊!!

梦幻神话 发表于 2005-4-26 19:27:00

用类向导->Add         Class按钮->From a type libraly....
选择CAD2002安装目录下的acad.tlb
-> 选择IAcadApplication,IAcadDocument,IAcadDocuments等(可以根据自己需要添加接口)
->得到acad.h         acad.cpp2个文件,然后#include "acad.h" 就可以用了。

h2023197 发表于 2005-4-27 09:36:00

我改成这样的
IAcadDocument IDoc,IApp;
        IDoc.AttachDispatch(IApp.get_ActiveDocument());
        IDoc->close(vFull,vNull);
可是还是出错啊,梦幻神话高手帮我看看!!
错误是:
Compiling...
XiTong.cpp
F:\haohuibin\testarx\XiTong.cpp(288) : error C2039: 'get_ActiveDocument' : is not a member of 'IAcadDocument'
                                                       f:\haohuibin\testarx\acad.h(5) : see declaration of 'IAcadDocument'
F:\haohuibin\testarx\XiTong.cpp(289) : error C2819: type 'IAcadDocument' does not have an overloaded member 'operator ->'
                                                       f:\haohuibin\testarx\acad.h(5) : see declaration of 'IAcadDocument'
F:\haohuibin\testarx\XiTong.cpp(289) : error C2227: left of '->close' must point to class/struct/union
F:\haohuibin\testarx\XiTong.cpp(289) : error C2065: 'vFull' : undeclared identifier
F:\haohuibin\testarx\XiTong.cpp(289) : error C2065: 'vNull' : undeclared identifier
Error executing cl.exe.
cadittestarx.arx - 5 error(s), 0 warning(s)

梦幻神话 发表于 2005-4-27 10:13:00

1、如果你用的是VC6.0 的话:
IDoc.AttachDispatch(IApp.GetActiveDocument());
IDoc->Close(vFull,vNull);
       
2、接口要用到变体 首先定义:
COleVariant vNull(""),
                vTrue((short)TRUE),
                vFull((short)FALSE);
       

pandoram 发表于 2005-4-27 11:43:00

这个IAcad是给别的程序用的OLE包装类啊, 在CAD里面自己用自己的OLE..-__-
而且这似乎是关闭文件不保存, 不是关闭整个CAD程序不保存啊..
直接结束CAD的话在按钮上用Win API的::ExitProcess()就好了吧..

h2023197 发表于 2005-4-27 16:20:00

谢谢上面两位大侠!!!!OK
页: [1]
查看完整版本: 通过按钮关闭AUTOCAD?