创建一个Arx程序

本文详细介绍了创建ARX程序的过程,包括自定义类的创建、CAD消息处理、入口点提供、初始化与卸载阶段的操作,如初始化自定义类、重建类层次、注册服务名、添加与移除命令等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用步骤:

1、  创建执行新命令的自定义类。可从ARX层次和符号表类派生自定义类。

2、  确定程序要处理哪些CAD的消息。CAD发送消息给程序,指出特定的事件已在CAD中发生了,用户决定哪些函数来响应次消息。

CAD发送给ARX应用程序的消息有四种:

A、 发送给所用应用程序的消息;

KinitAppMsg(应用程序装载),kUnloadAppMsg(卸载),KLoadDwgMsg(打开图形),KPreQuitMsgCAD退出时,在开始卸载所有的ARX应用程序之前)

B、 仅当应用程序使用acedDefun()已经注册了一个LISP函数时发送的消息;

C、 发送给已经注册了一个的ARX服务的应用程序的消息;

D、仅仅由使用ActiveX自动化的应用程序响应的消息。

3、  CAD提供访问ARX的入口点,axrxEntryPoint()

4、  执行初始化。在用户在ARX应用程序之间,用户将需要初始化任何已经创建的自定义类,并重建ARX运行时间类的树。
用户必须初始化应用程序定义的任何自定义的类和命令。初始化可以发生在用户的acrxEntryPoint()函数的AcRx::kInitAppMsg场合,或来自该场合的一个函数调用。步骤有:

1)如果用户已经定义了一个自定义类,则激活它的rxInit()函数。

2)如果用户已经定义了多个自定义类,则可调用acrxBuildClassHierarchy()函数重建ObjectArx运行时间类树。

   3)注册服务名。当其他应用程序依赖于用户应用程序,则应该注册一个服务名。acrxRegisterService()
4AddCommand

5、  准备卸载,移除自定义的类和命令。
(1)
创建了命令removeGroup

(2)自定了类 deleteAcRxClass

(3)删除被应用程序添加的对象

4)移除反应器

5)删除服务名acrxServiceDictionary->remove()

 

ObjetArx2004+VS2002前提:安装好以上两种软件创建步骤:1. 新建项目 Visual C++项目->选择ObjectARX/DBX/OMF->键入"Demo"项目名称 ->MFC Support中勾选Enxtension Dll->using MFC Shared DLL,其他取默认值2. 删除文件 在“解决方案资源管理器”中删除向导生成的acrxEntryPoint.cpp,DocData.cpp,DocData.h文件 同时可以在文件夹下彻底删除文件,后续步骤并不需要用到这3个文件3. 添加Demo.h文件 同时在Demo.h文件中加入代码 #pragma once #include"resource.h"3. 创建一个普通对话框,基于CDialog类,并生成类CDlgDemo4. 打开Demo.cpp文件,对这个文件要进行比较多的操作 ·注释掉"AFX_EXTENSION_MODULE DemoExtDLL ={ NULL, NULL };"这一句 ·添加#include "DlgDemo.h"头文件 ·添加函数DlgDemo(),具体见附件源文件代码 ·添加initApp(),unloadApp() ·注释掉DllMain中的"_hdllInstance =hInstance ;" ·在文件的末尾添加acrxEntryPoint() 这里需要提醒一下的是关于AC_IMPLEMENT_EXTENSION_MODULE(DemoDLL)的使用 涉及到了Dll资源的使用,所以DemoDLL在这里相当于一个连接AutoCAD和MFC的纽带, 保持整个Demo.cpp中,DemoDLL的一致5. 项目设置 菜单"工具"->"选项"->"项目"->"包含文件"->添加ObjectARX2004的inc目录 ->"库文件"->添加ObjectARX2004的lib目录6. 生成解决方案 一切pass,有2个警告rxapi.lib(libinit.obj) : warning LNK4099: 未发现 PDB“msvc.pdb” acedapi.lib(acedstub.obj) : warning LNK4099: 未发现 PDB“corehdr.pdb” 不用去管它,ObjectARX开发文档已经说明了这个问题的存在,不影响使用#至此为止,我们已经生成了MarkDemo.arx,在Debug目录下可以找到,下面将继续介绍如何在 AutoCAD2004菜单中自动加载Demo对话框
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值