Para agregar un submenú en cascada, cree el submenú con el método AddSubmenu. Este método crea un nuevo objeto PopupMenuItem y lo añade al menú indicado. A esta clase de objeto PopupMenuItem se le asigna el tipo acSubmenu.
El método AddSubmenu requiere tres parámetros de entrada: Index, Label y Tag.
El parámetro Index, o índice, es un número entero que determina la posición del nuevo elemento en el menú. El índice comienza por la posición cero (0), que corresponde al primer puesto en el menú después del título. Para añadir el nuevo elemento al final de un menú, asigne al parámetro Index el valor de la propiedad Count del menú (la propiedad Count del menú indica el número total de elementos que contiene el menú). (La propiedad Count del menú representa el número total de elementos de menú en ese menú.)
El parámetro Label, o etiqueta, es una cadena que define el contenido y el formato de los elementos de menú. El texto que el usuario ve en pantalla como opción de menú se denomina 'leyenda' y procede de la interpretación de todas las expresiones de cadena DIESEL y códigos especiales incluidos en la etiqueta. Por ejemplo, la etiqueta “&Edit” produce la leyenda “Editar.”.
El parámetro Tag, o identificador de nombre, es una cadena compuesta por caracteres alfanuméricos y de subrayado (_). Esta cadena identifica de forma única un elemento dentro de un determinado menú.
El método AddSubmenu no da como resultado el objeto PopupMenuItem que crea, sino que devuelve el nuevo menú al que apunta el submenú. En su lugar, devuelve el nuevo menú al que apunta el submenú. El nuevo menú, devuelto como objeto PopupMenu, podrá rellenarse como cualquier otro menú normal. Para obtener información sobre cómo rellenar un menú, véase Adición de nuevos elementos de menú a un menú.
Creación y relleno de un submenú
En este ejemplo, se crea un nuevo menú denominado “TestMenu” y se agrega a un submenú denominado “OpenFile.” A continuación el submenú se rellena con una opción de menú denominada “Open,”, que, al ejecutarla, abre un dibujo. Por último, se muestra el menú en la barra de menús.
Sub Ch6_AddASubMenu()
Dim currMenuGroup As AcadMenuGroup
Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)
' Create the new menu
Dim newMenu As AcadPopupMenu
Set newMenu = currMenuGroup.Menus.Add("TestMenu")
' Add the submenu
Dim FileSubMenu As AcadPopupMenu
Set FileSubMenu = newMenu.AddSubMenu("", "OpenFile")
' Add a menu item to the sub menu
Dim newMenuItem As AcadPopupMenuItem
Dim openMacro As String
' Assign the macro the VB equivalent of "ESC ESC _open "
openMacro = Chr(3) + Chr(3) + "_open "
Set newMenuItem = FileSubMenu.AddMenuItem _
(newMenu.count + 1, "Open", openMacro)
' Display the menu on the menu bar
newMenu.InsertInMenuBar _
(ThisDrawing.Application.menuBar.count + 1)
End Sub