CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ActiveX 开发指南

相关分类

AddSubMenu Method (ActiveX)

2023-1-4 12:15| 发布者: admin| 查看: 629| 评论: 0|来自: AutoCAD

摘要: 将子菜单添加到现有菜单。

将子菜单添加到现有菜单。

支持的平台:仅窗口

签名

工 务 局:

RetVal = object.AddSubMenu(Index, Label)
对象

类型:弹出菜单

此方法适用的对象。

指数

访问:仅输入

类型:变体

菜单中要添加项的索引位置。

如果使用整数指定菜单中的给定位置,则索引必须介于 0 和N-1 之间,其中N是弹出菜单中的对象数。新项将紧接在指定的索引位置之前添加。若要将新菜单项添加到菜单末尾,请将索引设置为大于N

如果指定了字符串,但索引项不存在,则新菜单项将添加到菜单末尾。

标签

访问:仅输入

类型:字符串

菜单项的标签。标签可能包含 DIESEL 字符串表达式。标签还通过在快捷键字符前面放置一个与号 (&) 来标识与菜单项对应的加速键(键盘键序列)。

返回值(RetVal)

类型:弹出菜单

新创建的子菜单。这个新的级联菜单是空白的,可以使用标准菜单处理技术进行填充。

言论

此方法创建一个新对象并将其添加到指定的菜单中。这种特殊类型的对象被分配了 的类型。PopupMenuItemPopupMenuItemacSubmenu

在下面的示例菜单中,“对齐文本”菜单项已插入到“维度”菜单中的第 17 个索引处。“对齐文本”菜单项的类型。示例中的所有其他菜单项都属于键入器。选择“对齐文本”时显示的小级联菜单是该方法返回的新菜单。它已使用 和 方法填充。acSubmenuacMenuItemacMenuSeparatorAddSubmenuAddMenuItemAddSeparator



例子

工 务 局:

Sub Example_AddSubMenu()
    ' This example creates a new menu called TestMenu and inserts a submenu item
    ' called NewFile. It then creates a menu item, called open,
    ' on the submenu.
    
    ' The menu is then displayed on the menu bar.
    ' To remove the menu after execution of this macro, use the Customize Menu
    ' option from the Tools menu.
    
    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 the submenu
    Dim FileSubMenu As AcadPopupMenu
    Set FileSubMenu = newMenu.AddSubMenu("", "NewFile")
    
    
    ' Add a menu item to the sub 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 = FileSubMenu.AddMenuItem(newMenu.count + 1, "Open", openMacro)
    
    ' Display the menu on the menu bar
    newMenu.InsertInMenuBar ThisDrawing.Application.MenuBar.count + 1
    
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_AddSubMenu()
    ;; This example creates a new menu called TestMenu and inserts a submenu item
    ;; called NewFile. It then creates a menu item, called open,
    ;; on the submenu.
    
    ;; The menu is then displayed on the menu bar.
    ;; To remove the menu after execution of this macro, use the Customize Menu
    ;; option from the Tools menu.
    (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 the submenu
    (setq FileSubMenu (vla-AddSubMenu newMenu "" "NewFile"))
    
    ;; 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 FileSubMenu (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))))

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

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-12 03:10

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部