Compartir a través de


Cómo: Agregue controladores del menú de barras de herramientas

  • Un controlador de menú en una barra de herramientas como un botón que tiene una flecha de lista desplegable situado al lado. Cuando un usuario hace clic en el controlador del menú, aparece un menú que contiene los grupos que tienen el controlador de menú como elemento primario. Dos ejemplos de controladores del menú en Visual Studio son el cuadro de Buscar en la barra de herramientas principal y el selector de objetos en la parte superior de la ventana de Propiedades .

  • Cuando un usuario hace clic en un comando en la lista desplegable que se asocia un controlador de menú, se ejecuta el comando y el nombre de comando se muestra en el botón del controlador del menú. Para ejecutar el comando de nuevo, el usuario hacer simplemente clic en el botón.

Nota

Aunque puede colocar un controlador de menú de un menú, se recomienda usar un submenú en su lugar porque es más fácil de implementar y es más coherente con las interfaces de usuario habituales.

  • Los controladores de menú tienen las siguientes características:

  • El icono y el texto del primer comando visible en la lista desplegable se muestra en el botón del controlador del menú.

  • Cuando se hace clic en un comando en la lista desplegable, el icono y el texto de ese comando se muestra en el botón.

  • El icono o el texto de un comando, o ambos, se pueden mostrar.

  • El botón se puede configurar para ejecutar el mismo comando cada vez que se haga clic en. En este caso, cuando un usuario hace clic en un comando en la lista desplegable, se ejecuta pero su nombre no se muestra en el botón.

Para modificar estas características, aplique los marcadores en el archivo de .vsct donde se define el controlador del menú. Para obtener más información, vea Tabla de comandos de Visual Studio (. archivos de Vsct).

Crear un controlador del menú

Para crear y agregar un controlador del menú

  1. Cree un proyecto de VSPackage, o abra un proyecto existente de Paquete que incluye un archivo de .vsct.

  2. Abra el archivo de .vsct en el editor.

  3. En la sección formada por Symbols (Elemento), busque GuidSymbol (Elemento) que contiene los menús, los grupos, y los comandos. de forma predeterminada, se denomina guid <ProjectName> CmdSet.

  4. Como se muestra en el ejemplo siguiente, agregue IDSymbol (Elemento) para que el controlador de menú, cada comando que hospeda, y uno o más grupos lleven los comandos.

    <IDSymbol name="TestMenuController" value="0x1300" />
    <IDSymbol name="TestMenuControllerGroup" value="0x1060" />
    <IDSymbol name="cmdidMCItem1" value="0x0130" />
    <IDSymbol name="cmdidMCItem2" value="0x0131" />
    <IDSymbol name="cmdidMCItem3" value="0x0132" />
    
  5. en Commands (Elemento), cree Menus Element.

  6. En el elemento de Menus , defina el controlador de menú como menú, como sigue.

    1. establezca los atributos de guid y de id a GUID: Identificador del nuevo controlador del menú.

      GUID: El par de identificador está formado por los atributos de name de los elementos de GuidSymbol y de IDSymbol en la definición del controlador del menú en la sección de Symbols .

    2. Establezca el atributo de priority para determinar la posición del controlador del menú del grupo primario.

    3. establezca el atributo de type aMenuController o a MenuControllerLatched.

      El valor de MenuController significa que el controlador del menú muestra inicialmente el primer comando visible.

      El valor de MenuControllerLatched significa que el controlador del menú utiliza el primer comando visible que selecciona como el comando inicialmente mostrado. Si no hay ningún comando seleccionado, después muestran el primer comando visible.

    4. en el elemento de Menu , cree Parent (Elemento) y establezca sus atributos de guid y de id a GUID: Identificador del grupo que hospeda el controlador del menú. Esto puede ser un grupo existente de Visual Studio, como guidStdEditor: IDG_VS_EDITTOOLBAR_COMMENT, que contiene los botones de comentario y de quite el comentario en la barra de herramientas del editor, o puede ser un grupo definido por el usuario.

      Puede omitir el elemento de Parent si el controlador del menú lo coloca mediante la posición del comando. para habilitar esto, antes de la sección de Symbols , cree CommandPlacements (Elemento). agregue CommandPlacement (Elemento) que tiene GUID: Identificador del controlador de menú, de prioridad, y un elemento primario.

      Posiciones varias de comando que tienen el mismo GUID: El identificador pero tiene varias causas de los elementos primarios un controlador del menú de aparecer en varias ubicaciones. Para obtener más información, vea CommandPlacements (Elemento) y Cómo: Crear grupos reutilizable de botones.

    5. Después del elemento primario, utilice Strings (Elemento) crear una sección que contiene ButtonText (Elemento) y CommandName (Elemento). El elemento de ButtonText se utiliza para establecer el nombre de la barra de herramientas que aparece en el IDE. El elemento de CommandName se utiliza para establecer el nombre de comando que se puede escribir en la ventana de comandos para tener acceso a la barra de herramientas.

    El ejemplo siguiente se define un controlador del menú.

    <Menu guid="guidTWToolbarCmdSet" id="TestMenuController" priority="0x0100" type="MenuController">
      <Parent guid="guidTWToolbarCmdSet" id="TWToolbarGroup" />
      <CommandFlag>IconAndText</CommandFlag>
      <CommandFlag>TextChanges</CommandFlag>
      <CommandFlag>TextIsAnchorCommand</CommandFlag>
      <Strings>
        <ButtonText>Test Menu Controller</ButtonText>
        <CommandName>Test Menu Controller</CommandName>
      </Strings>
    </Menu>
    
  7. En Groups (Elemento), cree Group (Elemento) para contener los comandos que desea que aparezca en el controlador del menú.

    1. Establezca la prioridad del grupo para determinar dónde aparecerá en el controlador del menú si hay varios grupos.

    2. Establezca el elemento primario del grupo a GUID: Identificador del controlador del menú.

    El grupo siguiente aparece en el controlador del menú del ejemplo anterior.

    <Group guid="guidTWToolbarCmdSet" id="TestMenuControllerGroup" priority="0x000">
      <Parent guid="guidTWToolbarCmdSet" id="TestMenuController" />
    </Group>
    
  8. En Buttons (Elemento), agregue Button (Elemento) para cada comando que desea agregar al controlador del menú. Cada comando debe especificar como su elemento primario al grupo en el controlador del menú, como se muestra en el ejemplo siguiente.

    <Button guid="guidTWToolbarCmdSet" id="cmdidMCItem1" priority="0x0000" type="Button">
      <Parent guid="guidTWToolbarCmdSet" id="TestMenuControllerGroup" />
      <Icon guid="guidImages" id="bmpPic1" />
      <CommandFlag>IconAndText</CommandFlag>
      <Strings>
        <ButtonText>MC Item 1</ButtonText>
        <CommandName>MC Item 1</CommandName>
      </Strings>
    </Button>
    <Button guid="guidTWToolbarCmdSet" id="cmdidMCItem2" priority="0x0100" type="Button">
      <Parent guid="guidTWToolbarCmdSet" id="TestMenuControllerGroup" />
      <Icon guid="guidImages" id="bmpPic2" />
      <CommandFlag>IconAndText</CommandFlag>
      <Strings>
        <ButtonText>MC Item 2</ButtonText>
        <CommandName>MC Item 2</CommandName>
      </Strings>
    </Button>
    <Button guid="guidTWToolbarCmdSet" id="cmdidMCItem3" priority="0x0200" type="Button">
      <Parent guid="guidTWToolbarCmdSet" id="TestMenuControllerGroup" />
      <Icon guid="guidImages" id="bmpPicSearch" />
      <CommandFlag>IconAndText</CommandFlag>
      <Strings>
        <ButtonText>MC Item 3</ButtonText>
        <CommandName>MC Item 3</CommandName>
      </Strings>
    </Button>
    

    Para forzar el botón del controlador del menú para mostrar el mismo comando cada vez que se hace clic en, establezca el marcador de FixMenuController en el comando.

    El elemento de Parent se puede omitir para los comandos que se colocarán mediante la posición del comando.

Vea también

Tareas

tutorial: Agregar un controlador de menú en una barra de herramientas

Conceptos

Referencia del esquema XML de VSCT

Otros recursos

Tutoriales para los comandos, menús, barras de herramientas y

comandos, menús, y barras de herramientas

Tareas comunes con los comandos, menús, barras de herramientas y