2010-10-21 36 views
2

Est-il possible de créer un menu personnalisé dans la barre de menus principale dans Visual Studio dans un complément?Ajout d'un menu à la barre de menus Visual Studio dans un complément

Je souhaite que le complément crée un menu spécifique à la société s'il n'existe pas, puis ajoute sa propre commande spécifique à ce menu. De cette façon, si plusieurs compléments sont fournis, ils peuvent tous ajouter les commandes au même menu.

J'ai trouvé un msdn link pour une procédure pas à pas dans la création d'un VSPackage qui le fait mais pas à partir d'un Add-In et il nécessite sa propre installation/inscription spécifique.

+0

Menu et sous-menus et lignes de séparation aussi? – Kiquenet

Répondre

4
public static CommandBarControl GetCustomMenu(DTE2 applicationObject) 
    { 
     //Find the MenuBar command bar, which is the top-level command bar holding all the main menu items 
     CommandBar menuBarCommandBar = ((CommandBars)applicationObject.CommandBars)["MenuBar"]; 

     //Find the Tools command bar on the MenuBar command bar as we want to add it before it 
     CommandBarControl toolsControl = menuBarCommandBar.Controls["Tools"]; 

     CommandBarControl myMenu; 

     try 
     { 
      // Get the menu bar if it already exists 
      myMenu = menuBarCommandBar.Controls["My Menu"]; 
     } 
     catch (Exception) 
     { 
      // Doesnt exist so crate a new one. 
      myMenu = menuBarCommandBar.Controls.Add(Type: MsoControlType.msoControlPopup, Id: 1234567890, Before: toolsControl.Index - 1); 
      myMenu.Caption = "My Menu"];; 
     } 
     return myMenu; 
    }