以下程式示例:用代碼建立菜單。
執行指令 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().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 為菜單項執行的指令文本