ObjectARX 利用工具栏按钮响应arx文件中的命令

_葫芦娃 2011-08-21 08:00:10
各位同仁:
初学CAD,我采用objectArx给CAD添加了一个工具栏(对话框),这个已经按照张凡老师的书实现了。
问题(1)在于:我想点击工具栏上的按钮响应注册的命令,如点击时调用系统的画圆命令.
问题(2)在于:如何调用我自己制作的.arx文件中已经注册的命令了,
比如我在test.arx中注册了一个命令
IMPLEMENT_ARX_ENTRYPOINT(CTestSystemApp)
ACED_ARXCOMMAND_ENTRY_AUTO(CTestSystemApp, abcdTestSystemApp, NewLayer, NewLayer, ACRX_CMD_TRANSPARENT, NULL)
该命令在CAD中的命令行是可以运行的,我想在点击工具栏时响应这个命令,但是无法成功,点击了没有执行命令,请多多指导。
我采用的是下面的code:其中按钮的响应为
void CClassChildDlg::OnBnClickedluru()

acedCommand(RTSTR, "Circle", // 命令
RTSTR, "0,0,0", // 圆心
RTSTR, "50", // 半径
RTNONE)

但是无法成功,请各位多多指点。
...全文
419 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
hehaho112 2012-02-12
  • 打赏
  • 举报
回复
可能是多文档的原因造成的,用AcApDocManager::sendStringToExecute 应该可以
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对话框

2,142

社区成员

发帖
与我相关
我的任务
社区描述
它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。
社区管理员
  • 地理信息系统
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧