ACED_ARXCOMMAND_ENTRY_AUTO用法可运行的示例
时间: 2023-08-01 15:15:33 浏览: 77
开机自动运行的一个例子
以下是一个可以直接运行的示例,演示了如何使用 ACED_ARXCOMMAND_ENTRY_AUTO 宏注册命令:
```cpp
#include "acedCmdNF.h"
#include "acdb.h"
#include "adslib.h"
void myCommandFunction()
{
acedAlert("Hello World!");
}
void initApp()
{
acedRegCmds->addCommand("MYGROUP", "MYCOMMAND", "MYCOMMAND", ACRX_CMD_MODAL, myCommandFunction);
}
void unloadApp()
{
acedRegCmds->removeGroup("MYGROUP");
}
extern "C" AcRx::AppRetCode acrxEntryPoint(AcRx::AppMsgCode msg, void* ptr)
{
switch (msg)
{
case AcRx::kInitAppMsg:
acrxDynamicLinker->unlockApplication(ptr);
acrxRegisterAppMDIAware(ptr);
initApp();
break;
case AcRx::kUnloadAppMsg:
unloadApp();
break;
}
return AcRx::kRetOK;
}
ACED_ARXCOMMAND_ENTRY_AUTO(acedCmdNF, MyGroup, MyCommand, MyCommand, ACRX_CMD_MODAL, myCommandFunction, AcDbDatabase::kDwgAcadVer);
```
以上代码中,我们注册了一个名为 "MyCommand" 的命令,它所属的命令组为 "MyGroup",在命令行输入或者 Lisp 中调用的命令名为 "MYCOMMAND"。它的实现函数为 myCommandFunction,命令标志为 ACRX_CMD_MODAL,表示该命令是一个模态命令。命令所涉及的数据库对象为 AcDbDatabase::kDwgAcadVer,表示该命令在所有 AutoCAD 版本中都有效。
当我们在 AutoCAD 中输入 "MYCOMMAND" 命令时,程序将会弹出一个对话框,显示 "Hello World!"。
阅读全文