找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 683|回复: 13

[求助]:怎样在CAD2002中处理双击事件

[复制链接]
发表于 2005-3-26 17:15:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
怎样在CAD2002中处理双击事件?有点像双击TEXT对象。能不能改CAD内部的双击事件??
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-3-27 17:22:02 | 显示全部楼层
从AcDbDoubleClickEdit类中派生一个自己的类,然后重写AcDbDoubleClickEdit::startEdit(AcDbEntity *pEnt, AcGePoint3d clickpt)函数,在这个函数里实现自己的东西,在Arx应用程序开始运行时注册这个类,卸载应用程序时取消注册。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-28 08:30:00 | 显示全部楼层
楼上的兄弟,你用的是哪个版本??我怎么没有找到这个类??
对了,我知道有个反应器可以实现双击功能,但是不能使用交互函数,所以选择阿,输入阿都不能实现。可以使用windows的API,那个兄弟作了的可以传上代码来实现阿!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-3-28 09:51:33 | 显示全部楼层
ARX2002中是有这个类的,ARX2000中没有,开发Autocad2002的程序最好用ARX2002,也可以注册一个消息钩子来实现。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-28 12:27:08 | 显示全部楼层
楼上的兄弟,能写一段程序看看么??
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-3-29 08:49:22 | 显示全部楼层

双击事件代码,响应尺寸双击

给你一个响应尺寸双击事件的例子!
代码如下:没分头文件和Cpp文件了!

  1.   [FONT=courier new]
  2. // 头文件
  3. // created by Racky Ye
  4. // 响应双击事件的类,从AcDbDoubleClickEdit派生,
  5. // 先注册才能有效
  6. class CdoubleClickDimension : public AcDbDoubleClickEdit  
  7. {
  8. public:
  9.         CdoubleClickDimension();
  10.         virtual ~CdoubleClickDimension();

  11.         void finishEdit(void);
  12.         void startEdit(AcDbEntity *pEnt, AcGePoint3d clickpt);

  13. private:
  14.         BOOL upgradeOpen(AcDbObject *pEnt);

  15. };

  16. // CPP文件

  17. CdoubleClickDimension::CdoubleClickDimension()
  18. {

  19. }

  20. CdoubleClickDimension::~CdoubleClickDimension()
  21. {

  22. }

  23. // 这是完成编辑后左的操作,也可修改这个函数的内容
  24. void CdoubleClickDimension::finishEdit(void)
  25. {
  26.        
  27. }

  28. // 主要是这个函数在起作用,在这个函数里实现你想要的功能
  29. void CdoubleClickDimension::startEdit(AcDbEntity *pEnt, AcGePoint3d clickpt)
  30. {
  31.         AcApDocument *pDoc=acDocManager->curDocument();
  32.         acDocManager->lockDocument(pDoc,AcAp::kWrite);
  33.        
  34.         if (pEnt->isKindOf(AcDbDimension::desc())) {
  35.                 AcDbDimension* pDim = AcDbDimension::cast(pEnt);
  36.                
  37.                 if(!upgradeOpen(pDim)) {
  38.                                                                  acDocManager->unlockDocument(pDoc);

  39.                         return;
  40.                 }

  41.                 // 修改标注文字内容
  42.                 pDim->setDimensionText(_T("修改之后的文字"));

  43.         }
  44.        
  45.         acDocManager->unlockDocument(pDoc);
  46.        
  47.         actrTransactionManager->flushGraphics();
  48. }

  49. BOOL CdoubleClickDimension::upgradeOpen(AcDbObject *pEnt)
  50. {
  51.         if(pEnt->upgradeOpen()!=Acad::eOk)
  52.         {
  53.                 acutPrintf("错误:不能打开%s实体!", pEnt->isA()->name());
  54.                 return FALSE;
  55.         }
  56.         return TRUE;
  57. }

  58. // 在ARX程序初始化和卸载时进行如下操作;

  59. void InitApplication()
  60. {
  61.         // 初始化AcDbDoubleClickEdit类
  62.         AcDbDoubleClickEdit::rxInit();
  63.        
  64.         // 为AcDbDimension添加扩展协议       
  65.            CdoubleClickDimension *pDimEdit=new CdoubleClickDimension;
  66.        
  67.         AcDbDimension::desc()->addX(AcDbDoubleClickEdit::desc(), pDimEdit);
  68. }

  69. // 程序卸载时
  70. void UnloadApplication()
  71. {
  72.         AcDbDimension::desc()->delX(AcDbDoubleClickEdit::desc());


  73.   [/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-29 11:14:44 | 显示全部楼层
呵呵,非常谢谢上面的兄弟阿,这个我已经实现了。就是怎么能在void CdoubleClickDimension::startEdit(AcDbEntity *pEnt, AcGePoint3d clickpt){
acedCoomand(RTSTR, "EditDim",0);

editdim是我已经注册的程序阿!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-3-29 19:53:22 | 显示全部楼层
这样自恐怕是不行的,你的EditDim命令需要选择实体吧?这里好像不能执行交互式操作吧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-3-29 20:35:35 | 显示全部楼层
那CAD公司怎么实现的呢???很值得探讨阿!!ACDBDoubleEditer怎么实现的???
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-4-1 23:25:54 | 显示全部楼层
ACDBDoubleEditer能调用你自己的命令吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-4 13:35:07 | 显示全部楼层
好像是交互式的程序都不行了!!acedCommand命令都不行阿
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-6-15 15:02:13 | 显示全部楼层
在SDK中怎么没找到AcDbDoubleClickEdit这个类啊,我用的ARX2002.
谁能传个Demo上来看看................
谢谢...........
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-6 19:47:41 | 显示全部楼层
有用,收藏先!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2006-7-13 10:42:08 | 显示全部楼层
能不能在自定义实体中实现对实体的双击事件的处理???
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-23 14:33 , Processed in 0.366149 second(s), 56 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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