Vla-addsubmenu
- 構文
- (vla-addsubmenu vla-object Index Label)
- 機能
- 既存のメニューにサブメニューを追加する。
- 引数
-
- vla-object … PopupMenu の VLAオブジェクト
- Index … 頂点を追加するメニューのインデックス位置
- 整数を使用して、メニュー内の与えられた位置を指定する場合、インデックスは 0 から N-1 まで。N はポップアップ メニュー内のオブジェクトの数。この項目は、指定されたインデックス位置の直前に追加される。メニューの最後に新しいメニュー項目を加えるには、インデックスを N より大きく設定する。 文字列が指定され、インデックスされた項目が存在しない場合、新しいメニュー項目はメニューの最後に追加される。
- Label … メニュー項目のラベル。ラベルは DIESEL 文字列式を含むことがある。ラベルはアクセラレータ文字の前にアンパサンド(&)を付けることにより、メニュー項目に該当するアクセラレータ キー(キーボードのキー シーケンス)も識別する。
- 戻り値
- 新しく作成されるサブメニューのVLAオブジェクト。新しいカスケード メニューは空白だが、メニューの標準操作で項目を追加することができる。
- 注意
- このメソッドは新しい PopupMenuItem オブジェクトを作成し、指定されたメニューに追加るす。この特殊な PopupMenuItem オブジェクトにはタイプ acSubmenu が割り当てられる。
- サンプル
(vl-load-com)
(defun c:Example_AddSubMenu()
;; テストメニューを追加してサブメニューを追加するサンプル
;; 追加されたメニューはカスタマイズから削除する
(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 FileSubMenu (vla-AddSubMenu newMenu "" "NewFile"))
(setq openMacro (strcat (Chr 3) (Chr 3) (Chr 95) "open" (Chr 32)))
(setq newMenuItem (vla-AddMenuItem FileSubMenu (1+ (vla-get-Count newMenu)) "Open" openMacro))
;; メニュー追加して表示
(vla-InsertInMenuBar newMenu (1+ (vla-get-Count (vla-get-MenuBar acadObj))))
(vla-SetVariable doc "MENUBAR" 1)
)
関連事項