本帖最后由 efan2000 于 2014-1-21 22:58 编辑
要先判断一级菜单是否已经创建。
 - '下面是创建菜单“工”
- Dim 菜单一 As AcadPopupMenu
- Dim b As Boolean
- b = False
- Dim i As Integer
- For i = 0 To currMenuGroup.Menus.Count - 1
- If currMenuGroup.Menus(i).Name = 一级菜单名 & Chr(Asc("&")) Then
- b = True
- Exit For
- End If
- Next
- If b = False Then
- Set 菜单一 = currMenuGroup.Menus.Add(一级菜单名 & Chr(Asc("&"))) '这是说在没有时创建菜单“小多”
- Else
- Set 菜单一 = currMenuGroup.Menus(一级菜单名 & Chr(Asc("&"))) '这是说在已有菜单“小多”时就让它赋给变量“newMenu”
- End If
同理判断二、三级菜单是否已经创建,注意是子菜单。
 - Dim 菜单二 As AcadPopupMenu b = False
- For i = 0 To 菜单一.Count - 1
- If 菜单一(i).Caption = 二级菜单名 & Chr(Asc("&")) Then
- Set 菜单二 = 菜单一(i).SubMenu
- b = True
- Exit For
- End If
- Next
- If b = False Then
- Set 菜单二 = 菜单一.AddSubMenu(菜单一.Count + 1, 二级菜单名 & Chr(Asc("&")))
- End If
- Dim 菜单三 As AcadPopupMenu
- b = False
- For i = 0 To 菜单二.Count - 1
- If 菜单二(i).Caption = 三级菜单名 & Chr(Asc("&")) Then
- Set 菜单三 = 菜单二(i).SubMenu
- b = True
- Exit For
- End If
- Next
- If b = False Then
- Set 菜单三 = 菜单二.AddSubMenu(菜单二.Count + 1, 三级菜单名 & Chr(Asc("&")))
- End If
接下来,如果菜单项已经存在,就删除,然后创建。
 - Dim subMenuItemPoint As AcadPopupMenuItem b = False
- For i = 0 To 菜单三.Count - 1
- If 菜单三(i).Caption = Chr(Asc("&")) & 按钮标题 Then
- Set subMenuItemPoint = 菜单三(i)
- subMenuItemPoint.Delete
- b = True
- Exit For
- End If
- Next
- If VBA或LSP = "LSP" Then
- '创建程序文件简单名为名的按钮,单击按钮时发出"-VBARUN XIANSHISHIYIANDAIMAYONGCHUANGTI "命令
- Set subMenuItemPoint = 菜单三.AddMenuItem(菜单三.Count + 1, Chr(Asc("&")) & 按钮标题, macro & 命令 & " ")
- Else
- Set subMenuItemPoint = 菜单三.AddMenuItem(菜单三.Count + 1, Chr(Asc("&")) & 按钮标题, macro & "-VBARUN " & 命令 & " ")
- End If
最后判断菜单是否已经在工具栏上了。
 - b = False
- For i = 0 To ThisDrawing.Application.MenuBar.Count - 1
- If ThisDrawing.Application.MenuBar(i).Name = 一级菜单名 & Chr(Asc("&")) Then
- b = True
- Exit For
- End If
- Next
- If b = False Then
- 菜单一.InsertInMenuBar (ThisDrawing.Application.MenuBar.Count + 1)
- End If
|