在ARX中通过COM在ACAD中添加菜单和工具条

本文介绍了如何通过COM接口在AutoCAD(ACAD)中动态添加自定义菜单和工具条。示例代码展示了创建名为'灵宇断面'的菜单,包含横断面、纵断面和帮助子菜单,以及对应的命令。同时,还提供了添加名为'断面'的工具条,并设置按钮与命令的对应关系。这些方法使得外部应用能够无缝集成到AutoCAD的用户界面中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

代码如下:

extern "C" AcRx::AppRetCode
acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt)
{
 switch (msg) {
 case AcRx::kInitAppMsg:
  // Comment out the following line if your
  // application should be locked into memory
  acrxDynamicLinker->unlockApplication(pkt);
  acrxDynamicLinker->registerAppMDIAware(pkt);
  InitApplication();
  addMenuThroughMfcCom();
  break;
 case AcRx::kUnloadAppMsg:
  UnloadApplication();
  break;
 }
 return AcRx::kRetOK;
}

void addMenuThroughMfcCom()
{
 TRY
 {
  IAcadApplication IAcad(acedGetAcadWinApp()->GetIDispatch(TRUE));
  IAcadMenuBar IMenuBar(IAcad.GetMenuBar());

  long numberOfMenus;
  numberOfMenus = IMenuBar.GetCount();

  IAcadMenuGroups IMenuGroups(IAcad.GetMenuGroups());

  VARIANT index;
  VariantInit(&index);
  V_VT(&index) = VT_I4;
  V_I4(&index) = 0;
  IAcadMenuGroup IMenuGroup(IMenuGroups.Item(index));
  IAcadPopupMenus IPopUpMenus(IMenuGroup.GetM

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值