第9篇 反应器.pdf
文本预览下载声明
9 章 反应器
本章简介8
反应器的概念和作用
反应器的实现机制。
反应器的使用。
学习要点
了解 应器的概念和作用。
掌握编辑 应器的使用。
掌握数据库 应器的使用。
Obj ectARX 为开发者提供了 应器机制,它类似于MFC 的消息处理,利用它我们
可以响应输入事件、实体添加/编辑/删除等事件。常见的AutoCAD 反应器有:编辑
应器AcEditorReactor、实体 应器AcDbEntityReactor、对象反应器AcDbObj ectReactor、
图形数据库 应器AcDbDatabaseReactor、文档管理 应器(AcApDocManagerReactor )
等,不同的 应器用于监控不同的事件,本章中介绍一下反应器操作相关的内容。
9.1 通知消息
当在AutoCAD 中发生各种事件的时候,例如执行AutoCAD 命 、修改系统变
量、保存和退出图形编辑或者切换当前工作布局空间等等,事件通知者对象会自
动地把这个事件传递给事件接收者对象,接收到消息后, 应器对象会对事件做
出相应,可以对触发事件的对象执行查询或编辑操作.
事件接收者对象称为 应器,一个特定的事件通知者对象可以拥有不同类型
的反应器,以便监视不同类型的事件,开发者可以根据需要向事件通知者对象的
应器列表中添加特定的反应器对象,当一个事件发生的时候,通知者对象会调
用其 应器列表中的每个反应器所对应的通知函数。如果 9-1 说明了事件的处理
PDF 文件使用 pdfFactory Pro 试用版本创建
第1章 AutoCAD 开发概览
过程。
图9-1 事件处理过程
处理过程说明:
1. 在ObjectARX 程序创建 应器对象。
2. ObjectARX 程序将反应器对象附着给事件的触发者AcDbLine 对象 。
3. AcDbLine 对象改变,想 应器发送objectModified 通知消息 。
4. 应器对象接受事件,针对事件做出相应的处理。
9.2 反应器概述
应器类是从AcRxObj ect 类中派生而来,而不是从AcDbObj ct 类派生而来,
应器的类型不同,接收的事件也不相同。如图9-2 给出了反应器类的层次结构。
AcRxObject
AcApDocmanagerReactor
AcApLongTransactionReactor
AcDbDatabaseReactor
AcDbObj ectReactor
AcDbEntityReactor
AcDbRasterImageDefFileAccessReactor
AcDbRasterimageDefTransReactor
AcEdInputContextReactor
显示全部