1.反应器介绍
AutoCAD中常用3种反应器:按照执行的先后顺序分别为 文档反应器、编辑器反应器、数据库反应器。
文档反应器:当用户新建、关闭CAD窗口(文档)或者切换窗口时,文档反应器将会被触发调用。
编辑器反应器:当执行命令之前和之后,分别会触发编辑器反应器两个函数commandWillStart(const char* cmdStr) 和commandEnded(const char* cmdStr),例如常见的“删除”、“复制”或剪切命令等,当然也可以是自己定义的二次开发命令。
数据库反应器:当在当前的视图窗口(文档)中绘制对象或者删除对象、修改对象时都会触发数据库反应器。
下面用代码展示一下最基本的文档反应器和数据库反应器的使用。
2.文档监视器
acrxEntryPoint.cpp文件添加
private:
CUSerDocReactor* m_pDocReactor; // 文档反应器
virtual AcRx::AppRetCode On_kInitAppMsg (void *pkt)
{
……………………
// TODO: Add your initialization code here
m_pDocReactor = new CUTunnelGraphSectionDocReactor;
……………………
}
virtual AcRx::AppRe