AutoCAD ARX如何注册新命令
时间: 2024-03-24 19:38:32 浏览: 28
在AutoCAD ARX中注册新命令需要使用acedRegCmds函数,该函数用于注册命令并将其添加到AutoCAD的命令列表中,以便用户可以通过命令行或菜单等方式访问新命令。
下面是使用acedRegCmds函数注册新命令的示例代码:
```
#include "acdbabb.h"
#include "aced.h"
#include "adslib.h"
void myCommand()
{
// 在这里编写新命令的实现代码
}
void initApp()
{
// 注册新命令
acedRegCmds(0, // 命令组号,0表示默认命令组
acdbHostApplicationServices()->findString("MYCOMMAND"), // 命令名
myCommand, // 命令实现函数
ACRX_CMD_MODAL, // 命令类型,ACRX_CMD_MODAL表示模态命令
NULL); // 命令帮助文件名,NULL表示没有帮助文件
}
void unloadApp()
{
// 卸载新命令
acedRegCmds(0, // 命令组号,0表示默认命令组
acdbHostApplicationServices()->findString("MYCOMMAND"), // 命令名
NULL, // 命令实现函数,NULL表示卸载该命令
ACRX_CMD_MODAL, // 命令类型,ACRX_CMD_MODAL表示模态命令
NULL); // 命令帮助文件名,NULL表示没有帮助文件
}
// 定义ARX程序的入口点函数
IMPLEMENT_ARX_ENTRYPOINT(MyArxApp)
AcRx::AppRetCode MyArxApp(const AcRx::AppMsgCode msg, void* pkt)
{
switch(msg)
{
case AcRx::kInitAppMsg:
// 进行ARX程序的初始化操作
initApp();
break;
case AcRx::kUnloadAppMsg:
// 进行ARX程序的卸载操作
unloadApp();
break;
default:
break;
}
return AcRx::kRetOK;
}
```
在上面的示例代码中,我们在initApp函数中使用acedRegCmds函数注册新命令,其中第一个参数为命令组号,这里我们使用默认命令组,第二个参数为命令名,这里我们使用字符串"MYCOMMAND"作为命令名,第三个参数为命令实现函数,这里我们使用myCommand函数作为命令实现函数,第四个参数为命令类型,这里我们使用ACRX_CMD_MODAL表示模态命令,最后一个参数为命令帮助文件名,这里我们不需要帮助文件,所以使用NULL表示没有帮助文件。
在unloadApp函数中,我们使用acedRegCmds函数卸载新命令,其中第三个参数为NULL表示卸载该命令。
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)