liub1979 发表于 2009-5-18 21:05:00

无法关闭文档

本帖最后由 作者 于 2009-5-18 21:47:38 编辑 <br /><br /> <p>void CloseActiveDocument()<br/>{<br/>&nbsp;&nbsp;&nbsp; IAcadApplication IApp;<br/>&nbsp;&nbsp;&nbsp; IAcadDocument IDoc;<br/>&nbsp;<br/>&nbsp;&nbsp;&nbsp; IDispatch *pDisp = acedGetAcadWinApp()-&gt;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; GetIDispatch(TRUE); //AddRef is called on the pointer<br/>&nbsp;&nbsp;&nbsp; IApp.AttachDispatch(pDisp); // does not call AddRef()<br/>&nbsp;&nbsp;&nbsp; IApp.SetVisible(true);<br/>&nbsp;&nbsp;&nbsp; pDisp = IApp.GetActiveDocument(); //AddRef is called<br/>&nbsp;&nbsp;&nbsp; IDoc.AttachDispatch(pDisp);</p><p>&nbsp;VARIANT saveChanges, fileName; <br/>&nbsp;saveChanges.vt = VT_BOOL;<br/>&nbsp;saveChanges.boolVal = VARIANT_TRUE;<br/>&nbsp;fileName.vt = VT_ERROR;<br/>&nbsp;fileName.scode = DISP_E_PARAMNOTFOUND;</p><p>&nbsp;IDoc.Close(saveChanges, fileName);</p><p>&nbsp;return;<br/>}</p><p>怎么不能关闭当前文档,反而报错 </p><p>弹出一对话框 说什么“未处理的异常 等。。。”</p>

松竹 发表于 2009-5-21 13:40:00

估计是你掉用这个函数的位置问题引起的,这样的函数需要一个非模式窗口来处理消息,你可以创建一个非模块对话框,在对话框中去关闭文档。

liub1979 发表于 2009-5-23 23:08:00

<p>命令行输入命令啊</p><p>同样用vb或vba写的 IDoc.Close true没有任何问题啊</p>

liub1979 发表于 2009-5-24 17:26:00

<p>谢谢松竹 问题解决了</p><p>是命令作用域的问题</p>
页: [1]
查看完整版本: 无法关闭文档