以下程序示例:用代码创建菜单。
执行命令 TestMenu ,将在主菜单上创建下图所示的菜单。
static AcadPopupMenu testMenu = null;
[CommandMethod("TestMenu")]
public void TestMenu()
{
Document doc = Application.DocumentManager.MdiActiveDocument;
AcadApplication acadApp = Application.AcadApplication as AcadApplication;
// 创建菜单
if (testMenu == null)
{
testMenu = acadApp.MenuGroups.Item(0).Menus.Add("测试菜单");
testMenu.AddMenuItem(testMenu.Count, "Menu1", "line ");
testMenu.AddMenuItem(testMenu.Count, "Menu2", "polyline ");
AcadPopupMenu subMenu = testMenu.AddSubMenu(testMenu.Count, "Menu3");
subMenu.AddMenuItem(testMenu.Count, "Cricle", "circle ");
testMenu.AddSeparator(testMenu.Count);
testMenu.AddMenuItem(testMenu.Count, "Menu4", "rectangle ");
}
// 菜单是否显示
bool isShowd = false;
foreach (AcadPopupMenu menu in acadApp.MenuBar)
{
if (menu == testMenu)
{
isShowd = true;
break;
}
}
// 显示菜单
if (!isShowd)
{
testMenu.InsertInMenuBar(acadApp.MenuBar.Count);
}
}
1
以上代码中用到的类 AcadApplication,需要添加引用 Autodesk.AutoCAD.Interop.dll。
该 dll 在对应版本的 ObjectARX 包中,需要下载 ObjectARX 安装。
(如:对于 AutoCAD 2014,在 ObjectARX 目录下的 inc-win32 或 inc-x64目录下)
ObjectARX 的下载地址如下:
AutoCAD 2010 ObjectARX
AutoCAD 2012 ObjectARX
AutoCAD 2014 ObjectARX
AutoCAD 2016 ObjectARX
2
AcadPopupMenuItem AddMenuItem(object Index, string Label, string Macro);
Index 为序号
Label 为菜单显示文本
Macro 为菜单项执行的命令文本