Vla-insertinmenubar

提供:GizmoLabs - だいたい CAD LISP なサイト
構文
(vla-insertinmenubar vla-object Index)


機能
コレクションから指定されたとき、ポップアップ メニューを CAD のメニュー バーから削除する。


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


戻り値
nil
サンプル
(vl-load-com)
(defun c:Example_RemoveMenuFromMenuBar()
    ;; テストメニューを作成追加して表示してから非表示にするサンプル
    (setq acadObj (vlax-get-acad-object))
    (setq currMenuGroup (vla-Item (vla-get-MenuGroups acadObj) 0))
    
    ;; 新規メニュー作成
    (setq newMenu (vla-Add (vla-get-Menus currMenuGroup) "TestMenu"))
    
    ;; メニューアイテムを追加
    ;; マクロは、"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))
    
    ;; メニューバーを表示
    (vla-InsertInMenuBar newMenu (1+ (vla-get-Count (vla-get-MenuBar acadObj))))

    (if (= (vla-get-OnMenuBar newMenu) :vlax-true)
        (alert (strcat "メニュー " (vla-get-Name newMenu) " をメニューバーにコール."))
        (alert (strcat "メニュー " (vla-get-Name newMenu) " をメニューバーにコールしたけどないし."))
    )
    
    ;; メニューバーを除去
    (vla-RemoveMenuFromMenuBar (vla-get-Menus currMenuGroup) "TestMenu")
  
    (if (= (vla-get-OnMenuBar newMenu) :vlax-true)
        (alert (strcat "メニュー " (vla-get-Name newMenu) " をメニューバーにコール."))
        (alert (strcat "メニュー " (vla-get-Name newMenu) " をメニューバーにコールしたけどないし."))
    )
)


関連事項