Создание контекстного меню
 
 
 

Контекстные меню отображаются в месте расположения курсора при нажатии правой кнопки указывающего устройства. Набор предлагаемых функций зависит от того, в какой области экрана находится курсор, а также от других факторов (наличие выбранного объекта, выполняемая команда и т.п.). Для отображения контекстных меню можно также использовать сценарии.

В контекстно-зависимых меню при нажатии правой кнопки мыши отображаются параметры, относящиеся к текущей команде или выбранному объекту.

Псевдонимы контекстных меню

Для ссылок на контекстные меню, используемые в текущей ситуации, используются псевдонимы. В редакторе настроек пользовательского интерфейса псевдонимы дожлны подчиняться соглашениям об именовании. Например, для контекстного меню “Меню по умолчанию “ в разделе "Псевдонимы" панели "Свойства" отображается следующая информация:

POP501, CMDEFAULT

Для контекстного меню "Объектная привязка" должен быть назначен псевдоним POP0. Псевдонимы для контекстно-зависимых меню должны иметь номера от POP500 до POP999.Следующие псевдонимы зарезервированы для внутреннего использования в программе:

Псевдонимы в программе для  контекстных меню

Псевдоним

Описание

РУЧКИ

Определяет контекстное меню выделенной ручки (нажмите правую кнопку в области рисования при выборе ручки на объекте).

CMDEFAULT

Определяет контекстное меню режима по умолчанию (нажмите правую кнопку мыши в области рисования, если не активна ни одна команда и не выбран ни один объект).

CMEDIT

Определяет контекстное меню режима редактирования (нажмите правую кнопку мыши в области рисования, если не активна ни одна команда, не выбран ни один объект и ни одна ручка).

CMCOMMAND

Определяет контекстное меню командного режима (нажмите правую кнопку мыши в области рисования, если команда активна). В дополнение к содержимому меню CMCOMMAND в это меню вставляются параметры команды (ключевые слова в квадратных скобках).

ПРИВЯЗКА

Определяет меню объектной привязки (нажмите клавишу SHIFT и нажмите правую кнопку мыши в области рисования).

Контекстные меню CMEDIT и CMCOMMAND могут быть сделаны контекстно-чувствительными. Помимо содержимого меню CMEDIT при выборе одного или нескольких указанных типов объектов в меню добавляется меню соответствующего объекта (свое для каждого типа). Для объектов меню используется одно из следующих соглашений по именованию: OBJECT_имя

OBJECTS_имя

Если выбран один объект определенного типа, используется меню OBJECT_имя, если несколько объектов - меню OBJECTS_имя. Если меню OBJECT_имя недоступно, программа использует меню OBJECTS_имя (если оно существует).

Имя объекта - это имя объекта в формате (DXF) во всех случаях, за исключением вставки объекта. В следующей таблице содержатся имена объектов для блоков, динамических блоков и внешних ссылок.

Имена объектов для вставленных объектов

Имя объекта

Описание

BLOCKREF

Вхождение блока без атрибутов

ATTBLOCKREF

Вхождение блока с атрибутами

DYNBLOCKREF

Вхождение динамического блока без атрибутов

ATTDYNBLOCKREF

Динамическая ссылка на блоки с атрибутами

ССЫЛКА

Внешняя ссылка

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

Свойства для объектов контекстного меню вхождений блоков

Элемент панели свойств

Описание

Пример

Имя

Строка, используемая только в редакторе НПИ, в пользовательском интерфейсе эта строка не отображается.

Меню объектов блоков

Описание

Описание элемента, не отображается в пользовательском интерфейсе.

Контекстное меню объектов блоков

Псевдонимы

Указывает псевдоним для контекстного меню. Нажмите кнопку [...], чтобы открыть диалоговое окно "Псевдонимы". Каждый псевдоним в файле НПИ служит программной ссылкой на контекстное меню и должен быть уникальным.

POP512,OBJECTS_BLOCKREF

Код элемента

Метка, уникально определяющая контекстное меню.

PM_0021

Как и меню CMEDIT, меню CMCOMMAND может содержать контекстную информацию. Меню с именем COMMAND_имя добавляется к меню CMCOMMAND. Текст имя_команды может принадлежать любой команде AutoCAD, в том числе любой пользовательской или команды стороннего приложения.

Во многих случаях перед командой можно ввести дефис; при вводе команды с дефисом вместо диалогового окна отображаются запросы для данной команды. При создании контекстно-зависимого меню для команды, предусматривающей отображение запросов вместо диалогового окна (например, -ВСТАВИТЬ), необходимо присвоить этому меню имя COMMAND_-ВСТАВИТЬ.

См. также