Конструктор команд
При добавлении команды в VSPackage необходимо указать, где она должна отображаться, когда она доступна, и способ ее обработки.
Определение команд
Чтобы определить новые команды, добавьте файл таблицы команд Visual Studio (VSCT) в проект VSPackage. Если вы создали VSPackage с помощью шаблона пакета Visual Studio, проект включает один из этих файлов. Дополнительные сведения см. в файлах командной таблицы Visual Studio (VSCT).
Visual Studio объединяет все находки vsct-файлов , чтобы отобразить команды. Так как эти файлы отличаются от двоичного файла VSPackage, Visual Studio не должен загружать пакет для поиска команд. Дополнительные сведения см. в статье о добавлении элементов пользовательского интерфейса в VSPackages.
Visual Studio использует ProvideMenuResourceAttribute атрибут регистрации для определения ресурсов и команд меню. Дополнительные сведения см. в разделе "Реализация команд".
Команды можно изменять во время выполнения различными способами. Их можно отобразить или скрыть, включить или отключить. Они могут отображать разные текст или значки или содержать разные значения. Прежде чем Visual Studio загружает VSPackage, может выполняться большая часть настройки. Дополнительные сведения см. в статье о добавлении элементов пользовательского интерфейса в VSPackages.
Обработчики команд
При создании команды необходимо предоставить обработчик событий для выполнения команды. Если пользователь выбирает команду, он должен быть соответствующим образом перенаправлен. Маршрутизация команды означает отправку его в правильный VSPackage, чтобы включить или отключить его, скрыть или отобразить и выполнить его, если пользователь решит сделать это. Дополнительные сведения см. в разделе "Алгоритм маршрутизации команд".
Среда команд Visual Studio
Visual Studio может размещать любое количество VSPackages, и каждый из них может внести свой собственный набор команд. В среде отображаются только команды, соответствующие текущей задаче. Дополнительные сведения см. в разделе "Доступность команд" и объекты контекста выбора.
VSPackage, который определяет новые команды, меню, панели инструментов или контекстные меню, предоставляет сведения о команде Visual Studio во время установки с помощью записей реестра, ссылающихся на ресурсы в собственных или управляемых сборках. Затем каждый ресурс ссылается на файл двоичного ресурса данных (CTO), который создается при компиляции файла командной таблицы Visual Studio (VSCT). Это позволяет Visual Studio предоставлять объединенные наборы команд, меню и панели инструментов, не загружая каждый установленный VSPackage.
Организация команд
Команды среды позиционирует по группам, приоритету и меню.
Группы — это логические коллекции связанных команд, например группы команд "Вырезать", "Копировать" и "Вставить ". Группы — это команды, которые отображаются в меню.
Приоритет определяет порядок, в котором отдельные команды в группе отображаются в меню.
Меню служат контейнерами для групп.
Среда предопределяет некоторые команды, группы и меню. Дополнительные сведения см. в разделе "Команда по умолчанию", "Группа" и "Размещение панели инструментов".
Команда может быть назначена первичной группе. Основная группа управляет положением команды в структуре главного меню и в диалоговом окне "Настройка ". Команда может отображаться в нескольких группах; Например, команда может находиться в главном меню, контекстном меню и на панели инструментов. Дополнительные сведения см. в статье о добавлении элементов пользовательского интерфейса в VSPackages.
Маршрутизация команд
Процесс вызова и маршрутизации команд для VSPackage отличается от процесса вызова методов в экземплярах объектов.
Среда направляет команды последовательно из самого внутреннего (локального) контекста команды, основанного на текущем выборе, в самый внешний (глобальный) контекст. Первый контекст, который может выполнить команду, — это тот, который обрабатывает его. Дополнительные сведения см. в разделе "Алгоритм маршрутизации команд".
В большинстве случаев среда обрабатывает команды с помощью IOleCommandTarget интерфейса. Так как схема маршрутизации команд позволяет обрабатывать команды различными объектами, IOleCommandTarget их можно реализовать любым количеством объектов. К ним относятся элементы управления Microsoft ActiveX, реализации представлений окон, объекты документов, иерархии проектов и объекты VSPackage (для глобальных команд). В некоторых специализированных случаях, например, команды маршрутизации в иерархии, IVsHierarchy интерфейс должен быть реализован.
См. также
Заголовок | Description |
---|---|
Реализация команд | Описывает, как реализовать команды в VSPackage. |
Доступность команд | Описывает, как контекст Visual Studio определяет доступные команды. |
Алгоритм маршрутизации команд | Описывает, как архитектура маршрутизации команд Visual Studio позволяет обрабатывать команды различными пакетами VSPackage. |
Рекомендации по размещению команд | Предлагает расположение команд в среде Visual Studio. |
Добавление элементов пользовательского интерфейса в VSPackages | Описывает, как VSPackages лучше всего использовать архитектуру команд Visual Studio. |
Размещение команд, групп и панелей инструментов по умолчанию | Описывает, как VSPackages лучше всего использовать команды, включенные в Visual Studio. |
Управление VSPackages | Описывает, как Visual Studio загружает VSPackages. |
Файлы командной таблицы Visual Studio (VSCT) | Предоставляет сведения о XML-файлах VSCT , которые используются для описания макета и внешнего вида команд в VSPackages. |