使用Visual C++创建ARX程序
2006-04-02 09:45:18 来源:WEB开发网注意 缺省情况下,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发送此消息,关闭当前文件并执行清除操作。
- ››使用linux中的quota教程
- ››使用jxl生成带动态折线图的excel
- ››创建SQL2005自动备份,定期删除的维护计划
- ››使用mysql mysqldump进行数据库迁移
- ››Visual Basic 2008 数学函数
- ››使用jquery是新tab形式
- ››使用QUnit进行Javascript单元测试
- ››使用UITextFieldDelegate来隐藏键盘
- ››使用公式提取Excel中的日期后发现格式不对
- ››Visual Studio2005中Smart Device的问题
- ››使用SQL Azure 的BI 解决方案
- ››使用PLSQL Developer工具导出sql文件
更多精彩
赞助商链接