创建cad菜单

cad菜单的创建办法
使用cui自定义,这个是差不多最稳妥的办法了
//创建一个test.mnu文本
//使用时,直接用menuload命令加载即可,加载后可以得到test.cui文件
***MENUGROUP=Polygon
***POP3
PolygonName [Polygon]
Polygon-4 [Polygon-4]^C^C_polygon 4 \I 10
Polygon-5 [Polygon-5]^C^C_polygon 5 \I 10
使用com的方式去创建
//先VS添加TypeLib中的MFC类
//可用的类型库AutoAcad 2010Type Library<1.0>,使用所有接口,创建一个acad.h和acad.cpp
//包含所有的类进去

#include "acad.h"

void AddMenuWithCom()
{
	IAcadApplication acad(acedGetAcadWinApp()->GetIDispatch(TRUE));
	IAcadMenuBar menuBar(acad.GetMenuBar());
	long menuCount = menuBar.GetCount();
	IAcadMenuGroups menuGroups(acad.GetMenuGroups());
	IAcadMenuGroup menuGroup(menuGroups.Item(COleVariant((long)0)));
	IAcadPopupMenus popupMenus(menuGroup.GetMenus());
	IAcadPopupMenu popupMenu(popupMenus.Add(_T("我的自定义菜单")));
	//第一个下拉菜单
	IAcadPopupMenuItem menuItem = popupMenu.AddMenuItem(COleVariant((long)0), _T("直线"), _T("Line "));
	//第二个下拉菜单,带子菜单
	IAcadPopupMenu subMenu(popupMenu.AddSubMenu(COleVariant((long)1), _T("画圆")));
	subMenu.AddMenuItem(COleVariant((long)0), _T("圆形"), _T("Circle "));
	subMenu.AddMenuItem(COleVariant((long)1), _T("弧形"), _T("Arc "));
	//第三个下拉菜单,带子菜单
	IAcadPopupMenu subMenuSub(subMenu.AddSubMenu(COleVariant((long)2), _T("画矩形")));
	subMenuSub.AddMenuItem(COleVariant((long)0), _T("圆形"), _T("Rectangle "));
	//第三个菜单项
    popupMenu.AddMenuItem(COleVariant((long)2), _T("画多端线"), _T("Pline " ));
    popupMenu.InsertInMenuBar(COleVariant(menuCount));
}

void RemoveMenuWithCom()
{
	//...仿造写
}

使用MFC自定义来使用MENU

总结:使用cui自定义菜单最稳妥,无论怎么切换都可以,使用代码的话,会出现一定问题,比如转换工作空间的时候
就会导致菜单丢失,使用cui文件则不会

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值