明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5051|回复: 2

cad2006-2012自定义实体双击弹出编辑对话框

[复制链接]
发表于 2014-7-24 12:02:19 | 显示全部楼层 |阅读模式
内容搜自论坛:
API专门用来处理实体的双击事件,此API基于新的ARX类AcDbDoubleClickEdit。在AutoCAD2000i中双击实体时,默认的行为是调用相应的实体定义编辑器或对象属性管理器。如果多个实体同时被选中,在选择集中双击实体会弹出对象属性管理器。对于自定义实体,可以重载双击事件,改变默认行为,为此需要从AcDbDoubleClickEdit为每个要处理双击事件的实体派生类。请看下面是一个处理多义线的例子(为节省篇幅,一些代码已经省略):
#include "AcDblClkEdit.h"
class AcDbDoubleClickEditPline : public AcDbDoubleClickEdit
{
public:
...
void startEdit(AcDbEntity *pEnt,AcGePoint3d pt);
void finishEdit(void);
};
为了接受通告消息,在这个类中必需声明两个方法:一个是startEdit(),另一个是finishEdit()。
当应用程序被加载的时候,AcDbDoubleClickEdit类要对要处理的数据库对象增加协议扩展,例如在InitApplication()初始化过程中增加如下的代码:
pPlineEdit = new AcDbDoubleClickEditPline;
AcDbPline::desc()->addX(AcDbDoubleClickEdit::desc(),pPlineEdit);
同样地,在卸载应用程序的时候去除数据库对象的协议扩展,方法如下:
AcDbPline::desc()->delX(AcDbDoubleClickEdit::desc());
要使程序能够被编译,还必需连接AcDblClkEditPE.lib库,并且在InitApplication()中增加如下的代码:
acrxDynamicLinker->loadModule(/*MSG0*/"ACDBLCLKEDITPE.ARX",Adesk::kFalse);
   以上内容对2002-2009应适用。对于cad2010-2012要根据以下描述调整
AcAdDoubleClickEdit 在 arx2010 中 变到哪里了?  
Solution
The AcDbDoubleClickEdit functionality that was exposed in AcDblClkEditPE.arx is now rolled up in AcApp.arx and acad.lib.
For AutoCAD 2010 to make double click extension protocol to work.…
1. Remove any loadModule() calls to AcDblClkEditPE.arx
2. Remove any calls to AcDbDoubleClickEdit::rxinit() as this is now done automatically for us.
3. Include the AcDblClkEdit.h
4. Add ACRX_DEFINE_MEMBERS(AcDbDoubleClickEdit); in one of your .cpp modules
    我根据以上描述,修改了网上下的代码,采用vs2010结合平台工具集,分别在arx2006、2008 、2012环境下编译通过。并在cad2006、cad2012运行成功。但2008版本arx,cad2008加载时显示为无效arx文件,不知何故(objectarx2008上的例子编译后,cad2008加载时同样显示)。放上编译通过的3个版本arx文件,望有安装了cad2008的测试一下2008版arx。同时放上源码。
      源码只需设置编译环境,2006-2012均适用,注意根据StdAfx.h中是否有#define ACAD2000_2009,决定是编译cad2006-2009arx还是编译cad2010-2012版arx。
      同时寻求解决:2008版本arx,cad2008加载时显示为无效arx文件的问题,即使ObjectARX 2008\samples\editor\mfcsamps\modal例子(试过多个)用vs2005编译通过,cad2008、cad2009加载均显示为无效arx文件,奇怪的是我原adsarx程序用vs2005移植到cad2008后正常(是静态连接到mfc,多线程/MT),郁闷。
源码见下一帖子:

 楼主| 发表于 2014-7-24 12:04:14 | 显示全部楼层
接上一帖子

本帖子中包含更多资源

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

x

点评

无码大片。浪费我一个币  发表于 2015-6-24 09:40
发表于 2015-2-5 09:47:34 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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