InsertMenuInMenuBar Method (ActiveX)

Inserts a menu into the AutoCAD menu bar.

Supported platforms: Windows only

Signature

VBA:

object.InsertMenuInMenuBar MenuName, Index
object

Type: PopupMenus

The object this method applies to.

MenuName

Access: Input-only

Type: String

The name of the popup menu to insert into the menu bar.

Index

Access: Input-only

Type: Variant

The index in the menu bar to place the popup menu. The index must be either an integer or a string.

If an integer, the index must be between 0 and N-1, where N is the number of popup menus in the menu bar.

If a string, the name of the popup menu must contain any underscore that appears in the menu.

Return Value (RetVal)

No return value.

Remarks

The menu is inserted immediately before the index position specified.

Examples

VBA:

Sub Example_InsertMenuInMenuBar()
    ' This example creates a new menu called TestMenu and inserts a menu item
    ' into it. The menu is then displayed on the menu bar.
    
    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 a menu item to the new menu
    Dim newMenuItem As AcadPopupMenuItem
    Dim openMacro As String
    ' Assign the macro string the VB equivalent of "ESC ESC _open "
    openMacro = Chr(3) & Chr(3) & Chr(95) & "open" & Chr(32)
    
    Set newMenuItem = newMenu.AddMenuItem(newMenu.count + 1, "Open", openMacro)
    
    ' Display the menu on the menu bar
    currMenuGroup.Menus.InsertMenuInMenuBar "TestMenu", ""
        
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_InsertMenuInMenuBar()
    ;; This example creates a new menu called TestMenu and inserts a menu item
    ;; into it. The menu is then displayed on the menu bar.
    (setq acadObj (vlax-get-acad-object))
    (setq currMenuGroup (vla-Item (vla-get-MenuGroups acadObj) 0))
    
    ;; Create the new menu
    (setq newMenu (vla-Add (vla-get-Menus currMenuGroup) "TestMenu"))
    
    ;; Add a menu item to the new menu
    ;; Assign the macro string the VB equivalent of "ESC ESC _open "
    (setq openMacro (strcat (Chr 3) (Chr 3) (Chr 95) "open" (Chr 32)))
    (setq newMenuItem (vla-AddMenuItem newMenu (1+ (vla-get-Count newMenu)) "Open" openMacro))
    
    ;; Display the menu on the menu bar
    (vla-InsertMenuInMenuBar (vla-get-Menus currMenuGroup) "TestMenu" "")

    ;; Display the menu bar
    (vla-SetVariable doc "MENUBAR" 1)
)