Пользовательский интерфейс системы AutoCAD. Адаптация существующих меню, создание новых меню, изменение функций элементов, страница 7

14. Падающие меню                     

Падающим меню в файле шаблона отведены разделы от РОР1 до РОР499. Номера используемых в одной группе меню разделов с префиксом POP не обязаны идти подряд, но повторяться они не должны.  В разных группах могут быть разделы с одинаковыми именами (например, раздел РОР1 есть как в группе ACAD, так и в группе EXPRESS). При этом в строке падающих меню одновременно может быть до 16 заголовков из числа загруженных в память. В данном разделе книги рассматриваются вопросы программирования различных операций с падающими меню, а также организации вложенных падающих меню (каскадные падающие меню). Если с помощью пункта падающего меню вызывается диалоговое окно, то наименование такого пункта обычно заканчивается многоточием.

15. Добавление меню

Для добавления заголовка программными средствами следует использовать следующее LISP- В выражение:

т (menucmd  "P10=+EXPRESS. POP1")

Это выражение добавляет заголовок Express(имя меню, расположенное в разделе РОР1 группы EXPRESS) к строке падающих меню на десятое место, если группа EXPRESS фрагментного меню «acetmain» уже загружена в память. Вместо имени раздела (РОР1) можно было использовать имя меню, которое следует с префиксом из двух звездочек за строкой с именем раздела (в листинге 4.1 имя меню, находящегося в разделе РОР11, — help).

Например:

(menucmd   "PlO=+ACAD.HELP")

Если вам нужно расположить новый заголовок не на конкретном по номеру месте в строке падающих меню, а перед ранее добавленным заголовком с определенным именем, можно воспользоваться таким выражением:

(menucmd  "GACAD.POP12=+EXPRESS.РОР1")

В этом случае заголовок из раздела РОР1 группы EXPRESS будет добавлен в строку падающих меню перед заголовком меню, импортированного из раздела РОР12 группы меню ACAD, независимо от того, на каком месте находится последний заголовок (а он может оказаться, например, первым или седьмым).

16. Удаление меню

Удаление заголовка из строки падающих меню может быть выполнено также с помощью следующего LISP-выражения:

(menucmd   "P10=+acad.help")

Данное выражение удалит падающее меню, заголовок которого находится на десятом, месте в строке падающих меню.

Если нужно удалить меню, импортированное из раздела РОР1 группы EXPRESS, независимо от места его расположения, следует применить такое выражение:

(menucmd   "GEXPRESS. РОР1=-")

17. Вывод меню на графический экран

Для того чтобы вывести на экран меню, заголовок которого является вторым в строке падающих меню, нужно выполнить следующее выражение:

(menucmd  "Р2=*")

Можно было бы обратиться к меню по имени группы и имени раздела, из которого это меню было загружено в память:

(menucmd  "GACAD. РОР5=*")       

Возможен вариант обращения к меню не по имени раздела, а по имени меню: 

(menucmd   "GACAD.FORMAT=*")

Эта операция выводит на экран меню Формат (Format), которое находится в разделе РОР5 файла acad.mnu.

18. Отметка пункта меню   

В операциях, выполняемых с помощью функции «menucmd», обращение к пункту меню осуществляется с помощью номера, вводимого в параметре <действие> после символов, обозначающих раздел (Р5, Р12, и т. п.), через точку. Номер «0» соответствует заголовку меню. Разделительные строки в падающих меню тоже участвуют в нумерации пунктов. У наименования пункта падающего меню может стоять отметка в виде флажка (галочки). Обычно это бывает удобно, когда пункт меню отражает настройку, для которой нужно показать, что она включена. Если в файле шаблона наименование пункта начинается с символов «!.», то эти два символа при выводе наименования пункта на экран преобразуются в знак отметки.

Следующее выражение ставит слева от наименования третьего пункта десятого меню знак отметки:

(menucmd   "P10.3=!.")      

19. Отключение пункта меню

Символ ~ перед наименованием пункта меню делает это пункт недоступным (приглушает). Пример: