ObjectArx动态加载及卸载自定义菜单

编程入门 行业动态 更新时间:2024-10-27 20:27:57

ObjectArx动态加载及卸载<a href=https://www.elefans.com/category/jswz/34/1771438.html style=自定义菜单"/>

ObjectArx动态加载及卸载自定义菜单

上节中我们介绍了如何制作自定义菜单即cuix文件:给CAD中添加自定义菜单CUIX-CSDN博客,我们开发时通常需要在ObjectArx程序中进行动态的添加或者删除cuix菜单。

创建ObjectArx程序,添加如下代码即可实现。

// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "pch.h"
#include <aced.h>
#include <rxregsvc.h>void loginCloudDwgServer();
void CLoadMenu();void initApp()
{// 注册commandacedRegCmds->addCommand(L"CLOUD", L"LoginCloudDwg", L"LoginCloudDwg", ACRX_CMD_TRANSPARENT, loginCloudDwgServer);// 加载菜单if (!acedIsMenuGroupLoaded(L"CLOUD")){CLoadMenu();}
}void unloadApp() {// 移除命令组acedRegCmds->removeGroup(L"CLOUD");// 卸载菜单const wchar_t* pMenuPath = L"C:\\Users\\zhen\\Desktop\\cloud.cuix";bool ret = acedUnloadPartialMenu(pMenuPath);if (!ret)acutPrintf(L"\n云图菜单卸载失败!");
}void CLoadMenu()
{// 加载自定义功能菜单const wchar_t* pMenuPath = L"C:\\Users\\zhen\\Desktop\\cloud.cuix";bool ret = acedLoadPartialMenu(pMenuPath);if (!ret)acutPrintf(L"\n云图菜单加载失败!");
}void loginCloudDwgServer() {// 功能入口,可以是界面程序或其他acutPrintf(L"\n弹出云图登录对话框!");
}extern "C" AcRx::AppRetCode acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt)
{switch (msg){case AcRx::kInitAppMsg://App插件初始化消息{acrxDynamicLinker->unlockApplication(pkt);acrxRegisterAppMDIAware(pkt);initApp();break;}case AcRx::kUnloadAppMsg://App插件卸载消息{unloadApp();break;}default:break;}return AcRx::kRetOK;
}

调试验证,

我们appload命令加载arx文件后,菜单上方出现了我们设计的功能菜单:

当在appload中卸载arx文件名后,菜单上方移除了我们的自定义功能菜单:

更多推荐

ObjectArx动态加载及卸载自定义菜单

本文发布于:2023-11-15 08:15:44,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1596537.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:自定义   菜单   加载   动态   ObjectArx

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!