乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 29|回复: 1

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

[复制链接]

9

主题

21

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
57
发表于 2014-7-24 12:02:00 | 显示全部楼层 |阅读模式
内容搜自论坛:
API专门用来处理实体的双击事件,此API基于新的ARX类AcDbDoubleClickEdit。在2000i中双击实体时,默认的行为是调用相应的实体定义编辑器或对象属性管理器。如果多个实体同时被选中,在选择集中双击实体会弹出对象属性管理器。对于自定义实体,可以重载双击事件,改变默认行为,为此需要从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),郁闷。
源码见下一帖子:
回复

使用道具 举报

9

主题

21

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
57
发表于 2014-7-24 12:04:00 | 显示全部楼层
接上一帖子

源码
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:nulrusqsqvy.rar 
下载次数:0  文件大小:27.68 KB  售价:2银币 [记录]
下载权限: 不限 以上或 Vip会员   [开通Vip]   [签到领银币]  [免费赚银币]



cad2008arx
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:qktoqzbwexc.rar 
下载次数:0  文件大小:30.73 KB  售价:2银币 [记录]
下载权限: 不限 以上或 Vip会员   [开通Vip]   [签到领银币]  [免费赚银币]



请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:qgghhs0hykj.rar 
下载次数:0  文件大小:28.83 KB  售价:2银币 [记录]
下载权限: 不限 以上或 Vip会员   [开通Vip]   [签到领银币]  [免费赚银币]



回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-5 05:11 , Processed in 0.153342 second(s), 63 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表