Удаление меню из панели меню — КиберПедия 

Типы оградительных сооружений в морском порту: По расположению оградительных сооружений в плане различают волноломы, обе оконечности...

Архитектура электронного правительства: Единая архитектура – это методологический подход при создании системы управления государства, который строится...

Удаление меню из панели меню

2021-06-30 33
Удаление меню из панели меню 0.00 из 5.00 0 оценок
Заказать работу

Для данной цели используйте один из следующих методов RemoveMenuFromMenuBar или RemoveFromMenuBar. Различия между ними те же что и для вышеописанных методов добавления меню. Пример удаления: currMenuGroup.Menus.RemoveMenuFromMenuBar ("TestMenu") В результате меню становятся невидимым, но физически не удаляется. Пример переупорядочивания меню (первый пункт переносится в конец):

Sub MoveMenu() ' Определим переменную содержащую меню Dim moveMenu As AcadPopupMenuDim MyMenuBar As AcadMenuBar Set MyMenuBar = ThisDrawing.Application.menuBar ' установим moveMenu равнымпервому Set moveMenu = MyMenuBar.Item(0) ' уберем с первой позиции MyMenuBar.Item(0).RemoveFromMenuBar ' вставимвпоследнюю moveMenu.InsertInMenuBar (MyMenuBar.count)End Sub

В результате меню File должно переехать в последнюю позицию.

Создание и редактирование выпадающих и всплывающих меню

Оба типа меню отображаются как каскадные меню. Последние, например, позволяют включать-включать объектную привязку. Выпадающие меню могут содержать до 999 пунктов. А всплывающие только до 499. Оба предела включют все меню в иерархии. Если меню не умещается на экране, то оно грубо обрезается. Всплывающие меню появляются обычно рядом с перекрестием. Если свойство ShortcutMenu=TRUE значит, это оно и есть.

Cоздание меню

Методом Add можно добавить объект PopupMenu в коллекцию PopupMenus. Для создания нового всплывающего старое следует сначала удалить. Может быть только одно такое меню на группу. Если таких меню нет, то можно создать его с именем "POP0". После чего по этому имени можно обращаться к меню в коллекции. Меню может включать и некторые специальные символы. Пример создания выпадающего меню:

Sub CreateMenu() Dim currMenuGroup As AcadMenuGroup Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0) Dim newMenu As AcadPopupMenu Set newMenu = currMenuGroup.Menus.Add("TestMenu")End Sub

Добавление пункта к меню

Метод AddMenuItem добавляет пункт в выпадающее меню, принимает четыре параметра - Index, Label, Tag, Macro. Index начинается с нуля, для добавления в конец установи индекс = значению свойства Count. Label - строка, определяющая содержание и формат пункта меню. (может содержать DEISEL выражение и специальные коды). Текст пункта меню еще называют Caption. Тэг - строка символов, включая подчеркивание идентифицирующая пункт меню. Макро - набор команд, выполняющихся при выборе пункта меню. Может быть как простым макросом вызывающим команду так и сложным набором команд. Пример добавления пункта меню:

Sub AddAMenuItem() Dim currMenuGroup As AcadMenuGroup Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0)Dim newMenu As AcadPopupMenu Set newMenu = currMenuGroup.Menus.Add("TestMenu") ' добавимпункт Dim newMenuItem As AcadPopupMenuItem Dim openMacro As String ' назначиммакросэквивалентный "ESC ESC _open " openMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32) Set newMenuItem = newMenu.AddMenuItem(newMenu.count + 1, "Open", openMacro) ' Отобразим newMenu.InsertInMenuBar(ThisDrawing.Application.menuBar.count + 1)End Sub

Для добавления разделителя между пунктами меню используйте метод AddSeparator.

Доступ к горячим клавишам

Для назначения горячей клавиши используйте символ & непосредственно перед буквой, которая и будет горячей. Пример:

Sub AddAMenuItem() Dim currMenuGroup As AcadMenuGroup Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0) Dim newMenu As AcadPopupMenu Set newMenu = currMenuGroup.Menus.Add("Te" + Chr(Asc("&")) + "stMenu") Dim newMenuItem As AcadPopupMenuItem Dim openMacro As String openMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32) Set newMenuItem = newMenu.AddMenuItem(newMenu.count + 1, Chr(Asc("&")) _ + "Open", openMacro) newMenu.InsertInMenuBar(ThisDrawing.Application.menuBar.count + 1)End Sub

Создание каскадных подменю

Для этой цели используйте метод AddSubmenu который создает новый объект PopupMenu и добавляет его в меню. Принимает три параметра - Index, Label и Tag. Данный метод не возвращает объект PopupMenu вместо этого он возвращает новое меню на которое указывает подменю, это меню следует добавить в существующее. Пример:

Sub AddASubMenu() Dim currMenuGroup As AcadMenuGroup Set currMenuGroup = ThisDrawing.Application.MenuGroups.Item(0) Dim newMenu As AcadPopupMenu Set newMenu = currMenuGroup.Menus.Add("TestMenu") ' Добавимподменю Dim FileSubMenu As AcadPopupMenu Set FileSubMenu = newMenu.AddSubMenu("", "OpenFile") ' Добавимпунктвподменю Dim newMenuItem As AcadPopupMenuItem Dim openMacro As String openMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32) Set newMenuItem = FileSubMenu.AddMenuItem(newMenu.count + 1, "Open", openMacro) ' Отобразим newMenu.InsertInMenuBar(ThisDrawing.Application.menuBar.count + 1)End Sub

Удаление пункта из меню

Sub DeleteMenuItem() Dim LastMenu As AcadPopupMenu Set LastMenu = ThisDrawing.Application.menuBar. _         Item(ThisDrawing.Application.menuBar.count - 1) ' Добавимпунктменю Dim newMenuItem As AcadPopupMenuItem Dim openMacro As String openMacro = Chr(3) + Chr(3) + Chr(95) + "open" + Chr(32) Set newMenuItem = LastMenu.AddMenuItem(LastMenu.count + 1, "Open", openMacro) ' Удалимпунктменю newMenuItem.DeleteEnd Sub

Поделиться с друзьями:

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...

Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...

Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...

Двойное оплодотворение у цветковых растений: Оплодотворение - это процесс слияния мужской и женской половых клеток с образованием зиготы...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.011 с.