RemoveMenuFromMenuBar メソッド(ActiveX)

コレクションから指定されたとき、ポップアップ メニューを AutoCAD メニュー バーから削除します。

サポートされているプラットフォーム: Windows のみ

構文と要素

VBA:

object.RemoveMenuFromMenuBar Index
object

タイプ: PopupMenus

このメソッドが適用されるオブジェクト。

Index

アクセス: 入力のみ

タイプ: バリアント型

削除するポップアップ メニューのメニュー バーのインデックス。インデックスは整数または文字列でなければなりません。整数の場合、Index は 0 から N-1 までとし、この場合 N はメニューバー内のポップアップ メニューの数です。文字列の場合、ポップアップ メニューの名前はメニューに表示されるアンダースコアを含んでいなければなりません。

戻り値(RetVal)

戻り値はありません。

注意

追加の注意はありません。

VBA:

Sub Example_RemoveMenuFromMenuBar()
    ' This example creates a new menu called TestMenu and inserts a menu item
    ' into it. The menu is displayed on the menu bar, and then
    ' removed from 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("TestMenu3")
    
    ' 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
    newMenu.InsertInMenuBar ThisDrawing.Application.MenuBar.Count + 1
    GoSub QUERYMENU
    
    ' Remove the menu from the menu bar
    currMenuGroup.Menus.RemoveMenuFromMenuBar "TestMenu3"
    GoSub QUERYMENU
    Exit Sub
    
QUERYMENU:
    If newMenu.OnMenuBar Then
        MsgBox "The menu called " & newMenu.Name & " is on the menu bar."
    Else
        MsgBox "The menu called " & newMenu.Name & " is not on the menu bar."
    End If
    Return
        
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_RemoveMenuFromMenuBar()
    ;; This example creates a new menu called TestMenu and inserts a menu item
    ;; into it. The menu is displayed on the menu bar, and then
    ;; removed from 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-InsertInMenuBar newMenu (1+ (vla-get-Count (vla-get-MenuBar acadObj))))

    (if (= (vla-get-OnMenuBar newMenu) :vlax-true)
        (alert (strcat "The menu called " (vla-get-Name newMenu) " is on the menu bar."))
        (alert (strcat "The menu called " (vla-get-Name newMenu) " is not on the menu bar."))
    )
    
    ;; Remove the menu from the menu bar
    (vla-RemoveMenuFromMenuBar (vla-get-Menus currMenuGroup) "TestMenu")
  
    (if (= (vla-get-OnMenuBar newMenu) :vlax-true)
        (alert (strcat "The menu called " (vla-get-Name newMenu) " is on the menu bar."))
        (alert (strcat "The menu called " (vla-get-Name newMenu) " is not on the menu bar."))
    )
)