glhu3 发表于 2006-2-6 14:28:00

[ARX]有关模态对话框与AutoCAD2002控制权相互转交的问题

用ARX边的程序,在AutoCAD2002里加载它后执行,在弹出的模态对话框中一个新建DWG的按钮,问题是点击按钮后,将控制权交给AutocAD2002,在完成如新建一个DWG文档、存盘等操作后,返回对话框,这个功能如何实现?

badboy518 发表于 2006-2-8 13:09:00

帮你顶一下。我的程序也是这个问题无法解决,我用 sw_hide  参数,还有Sleep(2000) 等指命令,就是针对 主对话框窗口 的操作,都会引起CAD挂起出错退出。

glhu3 发表于 2006-2-9 09:15:00

高分求解,谁能解决重奖励

vten6 发表于 2010-8-15 22:35:00

本问题值得探讨。我也出现类似问题。目前还没有答案。

houdy 发表于 2010-8-16 22:17:00

<p>这时候可能需要非模态对话框,例如AutoCAD中的属性面板就是AutoCAD封装的一个非模态对话框。</p>
<p>点击非模态对话框中的Button后,需要隐藏这个对话框。</p>
<p>由于非模态对话框处于Applicaton Context, 当AutCAD窗口获得焦点后,控制权就落在AutoCAD手里, 这样我们就可以为AutoCAD命令创建/保存文档。</p>
<p>我们需要扑捉一个事件用来让我们的非模态对话框重新显示出来,比如可以扑捉命令结束事件,或者扑捉文档加锁/解锁命令。</p>

kingofrpg 发表于 2010-11-7 22:01:00

&nbsp;<b style="font-size: 12px; line-height: 15px;">模态对话框只要是从</b>CAdUiBaseDialog派生的(一般从CAcUiDialog派生自己的模态对话框 ,CDialog-&gt;CAdUiBaseDialog-&gt;CAdUiDialog-&gt;CAcUiDialog),就可以使用如下方法:<br/>void CMyDialog::OnBnClickedCheck1()<br/>{<br/>&nbsp; BeginEditorCommand();&nbsp;
    //进入CAD交互模式<br/>&nbsp; if (DoMyInteractiveCommand())&nbsp;
//CAD交互代码,例如选择对象等<br/>&nbsp;&nbsp;&nbsp;&nbsp; CompleteEditorCommand();&nbsp;&nbsp;
//完成交互模式,回到对话框<br/>&nbsp;&nbsp;    else
<br/>&nbsp;&nbsp;&nbsp;&nbsp; CancelEditorCommand();&nbsp; //交互出现某种错误,直接退出对话框<br/>}<br/><br/>直接从CDialog派生也可实现,我试过,但没有CAD这个的效果好.<br/><br/>
页: [1]
查看完整版本: [ARX]有关模态对话框与AutoCAD2002控制权相互转交的问题