Diseño de comandos

Al agregar un comando a un VSPackage, debe especificar dónde debe aparecer, cuándo está disponible y cómo se va a controlar.

Definición de comandos

Para definir nuevos comandos, incluya un archivo de tabla de comandos (.vsct) de Visual Studio en el proyecto de VSPackage. Si ha creado un VSPackage mediante la plantilla de paquete de Visual Studio, el proyecto incluye uno de estos archivos. Para obtener más información, vea Archivos de tabla de comandos (.vsct) de Visual Studio.

Visual Studio combina todos los archivos .vsct que encuentra para que pueda mostrar los comandos. Dado que estos archivos son distintos del binario VSPackage, Visual Studio no tiene que cargar el paquete para encontrar los comandos. Para obtener más información, vea Cómo VSPackages agrega elementos de la interfaz de usuario.

Visual Studio usa el ProvideMenuResourceAttribute atributo de registro para definir comandos y recursos de menú. Para obtener más información, consulte Implementación de comandos.

Los comandos se pueden cambiar en tiempo de ejecución de varias maneras diferentes. Se pueden mostrar o ocultar, habilitar o deshabilitar. Pueden mostrar texto o iconos diferentes o contener valores diferentes. Se puede realizar una gran cantidad de personalización antes de que Visual Studio cargue el VSPackage. Para obtener más información, vea Cómo VSPackages agrega elementos de la interfaz de usuario.

Controladores de comandos

Al crear un comando, debe proporcionar un controlador de eventos para ejecutar el comando. Si el usuario selecciona el comando, debe enrutarse correctamente. El enrutamiento de un comando significa enviarlo al VSPackage correcto para habilitarlo o deshabilitarlo, ocultarlo o mostrarlo y ejecutarlo si el usuario decide hacerlo. Para obtener más información, consulte Algoritmo de enrutamiento de comandos.

Entorno de comandos de Visual Studio

Visual Studio puede hospedar cualquier número de VSPackages y cada uno puede contribuir con su propio conjunto de comandos. El entorno muestra solo los comandos adecuados para la tarea actual. Para obtener más información, vea Disponibilidad de comandos y Objetos de contexto de selección.

Un VSPackage que define nuevos comandos, menús, barras de herramientas o menús contextuales proporciona su información de comandos a Visual Studio en tiempo de instalación a través de entradas del Registro que hacen referencia a recursos en ensamblados nativos o administrados. A continuación, cada recurso hace referencia a un archivo de recursos de datos binarios (.cto), que se genera al compilar un archivo de tabla de comandos de Visual Studio (.vsct). Esto permite a Visual Studio proporcionar conjuntos de comandos combinados, menús y barras de herramientas sin tener que cargar todos los VSPackage instalados.

Organización de comandos

El entorno coloca los comandos por grupo, prioridad y menú.

  • Los grupos son colecciones lógicas de comandos relacionados, por ejemplo, el grupo de comandos Cortar, Copiar y Pegar . Los grupos son los comandos que aparecen en los menús.

  • La prioridad determina el orden en el que aparecen comandos individuales de un grupo en el menú.

  • Los menús actúan como contenedores para grupos.

    El entorno predefinía algunos comandos, grupos y menús. Para obtener más información, vea Comando, grupo y ubicación de la barra de herramientas predeterminados.

    Se puede asignar un comando a un grupo principal. El grupo principal controla la posición del comando en la estructura del menú principal y en el cuadro de diálogo Personalizar . Un comando puede aparecer en varios grupos; por ejemplo, un comando puede estar en el menú principal, en un menú contextual y en una barra de herramientas. Para obtener más información, vea Cómo VSPackages agrega elementos de la interfaz de usuario.

Enrutamiento de comandos

El proceso de invocar y enrutar comandos para VSPackages difiere del proceso de llamar a métodos en instancias de objeto.

El entorno enruta los comandos secuencialmente desde el contexto de comando más interno (local), que se basa en la selección actual, al contexto más externo (global). El primer contexto que puede ejecutar el comando es el que lo controla. Para obtener más información, consulte Algoritmo de enrutamiento de comandos.

En la mayoría de los casos, el entorno controla los comandos mediante la IOleCommandTarget interfaz . Dado que el esquema de enrutamiento de comandos permite que muchos objetos diferentes controlen comandos, IOleCommandTarget se pueden implementar mediante cualquier número de objetos; estos incluyen controles Microsoft ActiveX, implementaciones de vista de ventana, objetos de documento, jerarquías de proyectos y objetos VSPackage (para comandos globales). En algunos casos especializados, por ejemplo, los comandos de enrutamiento en una jerarquía, la IVsHierarchy interfaz debe implementarse.

Title Descripción
Implementación de comandos Describe cómo implementar comandos en un VSPackage.
Disponibilidad de comandos Describe cómo el contexto de Visual Studio determina qué comandos están disponibles.
Algoritmo de enrutamiento de comandos Describe cómo la arquitectura de enrutamiento de comandos de Visual Studio permite controlar los comandos mediante diferentes VSPackages.
Instrucciones de selección de ubicación de comandos Sugiere cómo colocar comandos en el entorno de Visual Studio.
Cómo VSPackages agrega elementos de la interfaz de usuario Describe cómo VSPackages puede usar mejor la arquitectura de comandos de Visual Studio.
Colocación predeterminada de comandos, grupos y barras de herramientas Describe cómo VSPackages puede usar mejor los comandos que se incluyen en Visual Studio.
Administrar VSPackages Describe cómo Visual Studio carga VSPackages.
Archivos de tabla de comandos de Visual Studio (.vsct) Proporciona información sobre los archivos .vsct basados en XML, que se usan para describir el diseño y la apariencia de los comandos en VSPackages.