[ARX]有关模态对话框与AutoCAD2002控制权相互转交的问题
用ARX边的程序,在AutoCAD2002里加载它后执行,在弹出的模态对话框中一个新建DWG的按钮,问题是点击按钮后,将控制权交给AutocAD2002,在完成如新建一个DWG文档、存盘等操作后,返回对话框,这个功能如何实现? 帮你顶一下。我的程序也是这个问题无法解决,我用 sw_hide 参数,还有Sleep(2000) 等指命令,就是针对 主对话框窗口 的操作,都会引起CAD挂起出错退出。 高分求解,谁能解决重奖励 本问题值得探讨。我也出现类似问题。目前还没有答案。 <p>这时候可能需要非模态对话框,例如AutoCAD中的属性面板就是AutoCAD封装的一个非模态对话框。</p><p>点击非模态对话框中的Button后,需要隐藏这个对话框。</p>
<p>由于非模态对话框处于Applicaton Context, 当AutCAD窗口获得焦点后,控制权就落在AutoCAD手里, 这样我们就可以为AutoCAD命令创建/保存文档。</p>
<p>我们需要扑捉一个事件用来让我们的非模态对话框重新显示出来,比如可以扑捉命令结束事件,或者扑捉文档加锁/解锁命令。</p> <b style="font-size: 12px; line-height: 15px;">模态对话框只要是从</b>CAdUiBaseDialog派生的(一般从CAcUiDialog派生自己的模态对话框 ,CDialog->CAdUiBaseDialog->CAdUiDialog->CAcUiDialog),就可以使用如下方法:<br/>void CMyDialog::OnBnClickedCheck1()<br/>{<br/> BeginEditorCommand();
//进入CAD交互模式<br/> if (DoMyInteractiveCommand())
//CAD交互代码,例如选择对象等<br/> CompleteEditorCommand();
//完成交互模式,回到对话框<br/> else
<br/> CancelEditorCommand(); //交互出现某种错误,直接退出对话框<br/>}<br/><br/>直接从CDialog派生也可实现,我试过,但没有CAD这个的效果好.<br/><br/>
页:
[1]