CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

使用反应器

2022-12-31 19:53| 发布者: admin| 查看: 256| 评论: 0|来自: AutoCAD

若要使用瞬态反应器,请从以下基类之一派生一个新类:

AcApDocManagerReactor

监视各种文档管理事件。

AcApLongTransactionReactor

监视与长期事务关联的操作。请参阅多头交易

AcDbDatabaseReactor

监视数据库对象的创建、修改和擦除。

AcDbLayoutManagerReactor

监视与布局管理器相关的事件。请参阅布局类概述

AcDbObjectReactor

监视与特定数据库对象相关的事件 — 创建、修改、擦除。

AcDbEntityReactor

监视特定于实体的额外事件,例如修改后的图形。

AcEdInputContextReactor

监视与用户输入提示相关的事件。请参阅输入上下文事件

AcEdSSGetFilter/AcEdSSGetFilter2

监视选择集操作。

AcRxDLinkerReactor

监视 ObjectARX 应用程序的加载和卸载。

AcRxEventReactor

监视 ObjectARX 和 ObjectDBX 通用的事件 .

AcEditorReactor/AcEditorReactor2

监视特定于 AutoCAD 的事件,例如命令和 AutoLISP评估。 ®

AcTransactionReactor

监视与事务管理器相关的事件 - 事务的启动、中止或结束。

AcPublishReactor

监视关键发布事件。

AcPublishUIReactor

监视“发布选项”对话框。

AcRx协议反应器

通过协议扩展机制监视事件。参见协议反应器框架

AcDMMReactor

监视“发布到 DWF”操作。

AcTcCatalogItemReactor

监视添加到目录项、从目录项中删除或分离的子项。

AcDbSummaryInfoReactor

监视对摘要信息的更改。

在大多数情况下,只需要标准的C++技术来创建新的瞬态反应堆类别。ObjectARX 宏为新的反应器类创建类描述符对象,通常不用于从这些反应器类派生。

每个父类都包含一组虚拟通知函数,这些函数可由新派生的类实现。例如,该类包含以下响应与对象相关的事件的通知函数:AcDbObjectReactor

  • cancelled()
  • copied()
  • erased()
  • goodbye()
  • openedForModify()
  • modified()
  • subObjModified()
  • modifyUndone()
  • modifiedXData()
  • unappended()
  • reappended()
  • objectClosed()

这些函数中的每一个都需要一个指向事件通知程序的指针。基类具有所有这些函数的实现。在派生的反应器类中,实现与感兴趣的通知类型对应的函数。然后实例化反应器并使用函数将其添加到任意数量的数据库对象中。若要在通告程序对象中添加或删除瞬态反应器,可以在任何状态(读取、写入或通知)下打开该对象。撤消机制不监视添加或删除瞬态反应器。(对于持久性反应器,必须打开通知程序对象进行写入,并且添加或删除反应器撤消机制监视。由于您创建了瞬态反应器对象,因此您还负责删除它。AcDbObjectReactorNULLAcDbObject::addReactor()

例如,当一个对象被擦除时,它会在其列表中的每个反应器上调用相应的通知函数。如果已为 Reactor 实现了 anfunction,则该函数将由数据库对象调用,然后您可以在擦除对象时执行适用于您的应用程序的任何特殊操作。erased()erased()


路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 15:53

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部