WEB开发网
开发学院图形图像AutoCAD 使用Visual C++创建ARX程序 阅读

使用Visual C++创建ARX程序

 2006-04-02 09:45:18 来源:WEB开发网   
核心提示: 注意 缺省情况下,ARX程序处于被锁定状态而不能被卸载,使用Visual C++创建ARX程序(2),如果要使ARX程序可以被卸载,需保存由AcRx::kInitAppMsg传送的appId参数,(2) 消息kUnloadAppMsg:当ObjectARX程序被卸载时(由用户卸载或者Aut

注意 缺省情况下,ARX程序处于被锁定状态而不能被卸载,如果要使ARX程序可以被卸载,需保存由AcRx::kInitAppMsg传送的appId参数,由unlockApplication()函数调用,见acrxEntryPoint ()函数注释。

38.2.2 AutoCAD与ARX程序之间的消息传递

AutoCAD向ARX程序发送四类消息:

(1) 发送给所有ARX程序的消息:kInitAppMsg、kUnloadAppMsg、kLoadDwgMsg、kPreQuitMsg。

(2) 只发送给通过调用acedDefun() 函数注册AutoLISP函数的ARX程序的消息:kUnloadDwgMsg、kInvkSubrMsg、kEndMsg、kQuitMsg、kSaveMsgkCfgMsg。

(3) 只发送给注册service对象的ARX程序的消息:kDependencyMsg、kNoDependencyMsg。

(4) 只发送给使用ActiveX控件对象的ARX程序的消息:kOleUnloadAppMsg。

普通的ARX程序仅需要响应消息kInitAppMsg和kUnloadAppMsg,这两种消息的含义和ARX程序对它们的响应方式为:

(1) 消息kInitAppMsg:当AutoCAD 加载ObjectARX应用程序并开始进行与应用程序的通信时发送此消息。

对于此消息,ARX程序应该注册服务对象、类、AcEd命令和事件反应器,以及AcRxDynamicLinker类事件反应器,初始化应用程序的系统资源(如设备、窗口),并执行简单的初始化操作;这时,AcRx、AcEd和AcGe类库都应该被激活;如果需要对应用程序进行解锁或重新加锁操作,还应该保存pkt参数。

但是这里不能进行下列操作:初始化设备驱动程序、激活用户界面资源、按特殊顺序加载应用程序、执行AutoLISP程序以及打开任何数据库,否则将导致错误发生或者系统崩溃;AcDb和AcGi类库也不能在这里激活,尽管它们与AcRx 和其它结构有联系。

(2) 消息kUnloadAppMsg:当ObjectARX程序被卸载时(由用户卸载或者AutoCAD程序终止时),AutoCAD发送此消息,关闭当前文件并执行清除操作。

上一页  1 2 3 4 5 6 7  下一页

Tags:使用 Visual 创建

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接