c++篇 cad.arx配置5.加入命令

现在我们需要忘记工具条添加命令的a>方法,因为在高版本的vs上面这个方法已经失效了....

干净的命令存放区

现在利用 acrxEntryPoint.cpp 的 On_kInitAppMsg 和 On_kUnloadAppMsg 两个函数添加命令和卸载命令,方便卸载的时候移除命令.

复制代码
    CString _CommandGroup = "JJBoxArx";
    //自动执行的命令
    virtual AcRx::AppRetCode On_kInitAppMsg(void *pkt)
    {
        AcRx::AppRetCode retCode = AcRxArxApp::On_kInitAppMsg(pkt);
        //添加命令
     acedRegCmds->addCommand(szRDS, _T("_jjarx_ss"), _T("jjarx_ss"), ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET | ACRX_CMD_REDRAW, CJJBoxUtils::jjarx_hatch);
     acedRegCmds->addCommand(szRDS, _T("_jjarx_ss2"), _T("jjarx_ss2"), ACRX_CMD_MODAL | ACRX_CMD_USEPICKSET | ACRX_CMD_REDRAW, jjarx_hatch2);
return (retCode);
}
//卸载的时候执行 
    virtual AcRx::AppRetCode On_kUnloadAppMsg(void *pkt)
    {
        AcRx::AppRetCode retCode = AcRxArxApp::On_kUnloadAppMsg(pkt);
        //移除这个组的所有命令
        acedRegCmds->removeGroup(_CommandGroup);
        return (retCode);
    }

    //寄存服务器组件
    virtual void RegisterServerComponents()
    {
    }
复制代码

 

为了让acrxEntryPoint.cpp更单纯的存放命令,所以下面有三种方式写命令.

 

第一种:类实现

 在项目使用鼠标右键弹出类向导:

 CJJBoxUtils::jjarx_hatch 的实现

   .h文件

 .cpp文件

 

第二种:全局函数

 jjarx_hatch2 的实现:

  新建一个cpp文件,写别的地方去.

 

两种方法都很有趣...

 

第三种:命名空间法

 

 

  

 

当然是最后一种好用啦,嘻嘻.

 

posted @   惊惊  阅读(692)  评论(3编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示