Добавление меню в строку меню Visual Studio в надстройке - PullRequest
2 голосов
/ 21 октября 2010

Можно ли создать надстройку для добавления пользовательского меню в строку главного меню в Visual Studio в надстройке?

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

Я нашел msdn-ссылку для пошагового руководства по созданию VSPackage, который делает это, ноне из надстройки и требует отдельной установки / регистрации.

1 Ответ

4 голосов
/ 26 октября 2010
    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;
    }
...