天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 83|回复: 0

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

[复制链接]
  • TA的每日心情
    开心
    2024-8-31 15:58
  • 签到天数: 89 天

    [LV.6]常住居民II

    488

    主题

    207

    回帖

    3366

    积分

    管理员

    积分
    3366
    发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
    1. // dllmain.cpp : 定义 DLL 应用程序的入口点。
    2. #include "pch.h"
    3. #include <aced.h>
    4. #include <rxregsvc.h>
    5. void loginCloudDwgServer();
    6. void CLoadMenu();
    7. void initApp()
    8. {
    9.         // 注册command
    10.         acedRegCmds->addCommand(L"CLOUD", L"LoginCloudDwg", L"LoginCloudDwg", ACRX_CMD_TRANSPARENT, loginCloudDwgServer);
    11.         // 加载菜单
    12.         if (!acedIsMenuGroupLoaded(L"CLOUD"))
    13.         {
    14.                 CLoadMenu();
    15.         }
    16. }
    17. void unloadApp() {
    18.         // 移除命令组
    19.         acedRegCmds->removeGroup(L"CLOUD");
    20.         // 卸载菜单
    21.         const wchar_t* pMenuPath = L"C:\\Users\\zhen\\Desktop\\cloud.cuix";
    22.         bool ret = acedUnloadPartialMenu(pMenuPath);
    23.         if (!ret)
    24.                 acutPrintf(L"\n云图菜单卸载失败!");
    25. }
    26. void CLoadMenu()
    27. {
    28.         // 加载自定义功能菜单
    29.         const wchar_t* pMenuPath = L"C:\\Users\\zhen\\Desktop\\cloud.cuix";
    30.         bool ret = acedLoadPartialMenu(pMenuPath);
    31.         if (!ret)
    32.                 acutPrintf(L"\n云图菜单加载失败!");
    33. }
    34. void loginCloudDwgServer() {
    35.         // 功能入口,可以是界面程序或其他
    36.         AfxMessageBox(L"云图登录");
    37. }
    38. extern "C" AcRx::AppRetCode acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt)
    39. {
    40.         switch (msg)
    41.         {
    42.         case AcRx::kInitAppMsg://App插件初始化消息
    43.         {
    44.                 acrxDynamicLinker->unlockApplication(pkt);
    45.                 acrxRegisterAppMDIAware(pkt);
    46.                 initApp();
    47.                 break;
    48.         }
    49.         case AcRx::kQuitMsg:// 推出消息
    50.         case AcRx::kUnloadAppMsg://App插件卸载消息
    51.         {
    52.                 unloadApp();
    53.                 break;
    54.         }
    55.         default:
    56.                 break;
    57.         }
    58.         return AcRx::kRetOK;
    59. }
    复制代码



    调试验证,

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

    a1.png

    点击菜单登录云图,弹出测试弹窗:

    a2.png

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

    a3.png

     

     

     

     

    ObjectArx动态加载及卸载自定义菜单
    中国膜结构网打造全中国最好的膜结构综合平台 ,统一协调膜结构设计,膜结构施工,膜材采购,膜材定制,膜结构预算全方位服务。 中国空间膜结构协会合作单位。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池| |网站地图

    GMT+8, 2024-9-8 09:29 , Processed in 0.063317 second(s), 28 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表