CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2024 开发者帮助

使用反应器

2024-5-18 19:12| 发布者: admin| 查看: 164| 评论: 0|原作者: admin|来自: AutoCAD

使用反应器

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

AcApDocManager反应器

监视各种文档管理事件。

AcApLongTransactionReactor

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

AcDbDatabaseReactor

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

AcDbLayoutManager反应器

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

AcDbObjectReactor

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

AcDbEntityReactor

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

AcEdInputContextReactor

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

AcEdSSGetFilter/AcEdSSGetFilter2

监视选择集操作。

AcRxDLinker反应器

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

AcRxEvent反应器

监视 ObjectARX 和 ObjectDBX 通用的事件 .

AcEditorReactor/AcEditorReactor2

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

AcTransaction反应器

监视与事务管理器相关的事件 — 事务的开始、中止或结束。

AcPublish反应堆

监视关键发布事件。

AcPublishUIReactor

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

AcRx协议电抗器

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

AcDMMReactor

监视发布到 DWF 操作。

AcTcCatalogItem反应器

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

AcDbSummaryInfoReactor

监视对“摘要信息”的更改。

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

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

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

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

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

父主题:

  1. 通知

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2025-3-28 17:09

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部