Vla-addmenuitem

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


機能
ポップアップ メニュー項目をポップアップ メニューに追加する。


引数
  • vla-object … PopupMenu の VLAオブジェクト
  • Index … 項目を追加するポップアップ メニューのインデックス位置。インデックスは整数または文字列でなければならない。
  • 整数を使用して、メニュー内の与えられた位置を指定する場合、インデックスは 0 から N-1 まで。N はポップアップ メニュー内のオブジェクトの数。この項目は、指定されたインデックス位置の直前に追加される。メニューの最後に新しいメニュー項目を加えるには、インデックスを N より大きく設定する。文字列が指定され、インデックスされた項目が存在しない場合、新しいメニュー項目はメニューの最後に追加される。
  • Label … メニュー項目のラベル。ラベルは DIESEL 文字列式を含むことがある。ラベルは、アクセラレータ文字の前にアンパサンド(&)を付けることにより、メニュー項目に該当するアクセラレータ キー(キーボードのキー シーケンス)を識別する。
  • Macro … このメニュー項目に関連付けられたマクロの名前。


戻り値
新しく作成されるポップアップ メニュー項目 のVLAオブジェクト


サンプル
(vl-load-com)
(defun c:Example_AddMenuItem()
    ;; TestMenuという新しいメニューを作成し、その中にメニュー項目を挿入するサンプル。
    ;; メニューは、メニューバーに表示される。このマクロの実行後はメニューを削除するには、
    ;; [ツール]メニューから[カスタマイズ]メニューオプションを使用する。
    (setq acadObj (vlax-get-acad-object))
    (setq currMenuGroup (vla-Item (vla-get-MenuGroups acadObj) 0))
    
    ;; 新しいメニューの作成
    (setq newMenu (vla-Add (vla-get-Menus currMenuGroup) "TestMenu"))
    
    ;; 新しいメニューに項目を追加
    ;; マクロは、^C^C_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))))
    (vla-SetVariable doc "MENUBAR" 1)
)

関連事項