明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3162|回复: 5

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

[复制链接]
发表于 2006-2-6 14:28:00 | 显示全部楼层 |阅读模式
用ARX边的程序,在AutoCAD2002里加载它后执行,在弹出的模态对话框中一个新建DWG的按钮,问题是点击按钮后,将控制权交给AutocAD2002,在完成如新建一个DWG文档、存盘等操作后,返回对话框,这个功能如何实现?
发表于 2006-2-8 13:09:00 | 显示全部楼层
帮你顶一下。我的程序也是这个问题无法解决,我用 sw_hide  参数,还有Sleep(2000) 等指命令,就是针对 主对话框窗口 的操作,都会引起CAD挂起出错退出。
 楼主| 发表于 2006-2-9 09:15:00 | 显示全部楼层
高分求解,谁能解决重奖励
发表于 2010-8-15 22:35:00 | 显示全部楼层
本问题值得探讨。我也出现类似问题。目前还没有答案。
发表于 2010-8-16 22:17:00 | 显示全部楼层

这时候可能需要非模态对话框,例如AutoCAD中的属性面板就是AutoCAD封装的一个非模态对话框。

点击非模态对话框中的Button后,需要隐藏这个对话框。

由于非模态对话框处于Applicaton Context, 当AutCAD窗口获得焦点后,控制权就落在AutoCAD手里, 这样我们就可以为AutoCAD命令创建/保存文档。

我们需要扑捉一个事件用来让我们的非模态对话框重新显示出来,比如可以扑捉命令结束事件,或者扑捉文档加锁/解锁命令。

发表于 2010-11-7 22:01:00 | 显示全部楼层
 模态对话框只要是从CAdUiBaseDialog派生的(一般从CAcUiDialog派生自己的模态对话框 ,CDialog->CAdUiBaseDialog->CAdUiDialog->CAcUiDialog),就可以使用如下方法:
void CMyDialog::OnBnClickedCheck1()
{
  BeginEditorCommand();  //进入CAD交互模式
  if (DoMyInteractiveCommand())  //CAD交互代码,例如选择对象等
     CompleteEditorCommand();   //完成交互模式,回到对话框
   else
     CancelEditorCommand();  //交互出现某种错误,直接退出对话框
}

直接从CDialog派生也可实现,我试过,但没有CAD这个的效果好.

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 12:27 , Processed in 0.170624 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表