Поделиться через


Практическое руководство. Отображение пользовательского значка на кнопке надстройки

Значок по умолчанию (смайлик), отображаемый рядом с командой надстройки, можно заменить значком не из числа предварительно определенных стандартных значков, как описано в разделе Практическое руководство. Изменение значка по умолчанию для надстройки.

Процесс замены заключается в следующем:

  • Добавление растрового изображения значка в проект в виде ресурса.

  • Присвоение параметру MSOButton в методе AddNamedCommand2 значения false (что дает методу указание искать растровое изображение значка).

  • Создание ссылки на номер этого ресурса в разделе commandbar проекта надстройки.

В следующей процедуре описан порядок добавления пользовательского значка к кнопке надстройки.

ПримечаниеПримечание

Отображаемые диалоговые окна и команды меню могут отличаться от описанных в справке в зависимости от текущих настроек или выпуска.Эти процедуры были разработаны с обычными параметрами разработки.Чтобы изменить настройки, в меню Сервис выберите команду Импорт и экспортпараметров.Дополнительные сведения см. в разделе Параметры Visual Studio.

Чтобы добавить пользовательский растровый рисунок как значок кнопки надстройки в проект надстройки

  1. Откройте существующее решение надстройки или создайте новое решение в Visual Studio.

  2. Добавьте новый файл ресурсов в проект надстройки.Описание процедуры

    1. Щелкните правой кнопкой мыши проект надстройки в обозревателе решений.

    2. В меню Добавить выберите команду Новый элемент.

    3. В списке шаблонов выберите Файл ресурсов и нажмите кнопку Добавить.Примите имя по умолчанию (Resources1.resx).

      Запустится Редактор ресурсов Visual Studio.

  3. Если файл ресурсов не присутствует в обозревателе решений, нажмите кнопку Показать все файлы на панели инструментов.

  4. В качестве аргумента растрового рисунка для надстройки должно быть указано целое число.Установка этого свойства позволит редактировать файл ресурсов и назначить точечному ресурсу числовой идентификатор в качестве имени, чего нельзя сделать, когда файл RESX является частью проекта надстройки.

  5. В редакторе ресурсов нажмите кнопку Добавить ресурс и выберите из раскрывающегося списка Создать изображение, а затем Изображение BMP.Пока примите его имя по умолчанию (Image1.bmp).

    Можно также выбрать существующее растровое изображение размером 16 x 16 пикселей и с глубиной цвета 16 цветов или True Color.Пользовательские значки для надстроек должны иметь размер 16 x 16 пикселей и глубину цвета 16 цветов или True Color.

  6. В окне свойств растрового изображения измените свойства Высота и Ширина на значение 16.Свойству Цвета присвойте значения 16 цветов или True Color.

  7. Если создано новое растровое изображение, измените рисунок в Редакторе ресурсов.

  8. Откройте класс Connect для надстройки.В методе OnConnection в строке AddNamedCommand2 измените значение параметра MSOButton с true на false, а значение параметра Bitmap с 59 на 1.Примеры.

    command = commands.AddNamedCommand2(_addInInstance, "MyAddin1", " 
    MyAddin1", "Executes the command for MyAddin1", False, 1, Nothing, 
    CType(vsCommandStatus.vsCommandStatusSupported, Integer) + 
    CType(vsCommandStatus.vsCommandStatusEnabled, Integer), 
    vsCommandStyle.vsCommandStylePictAndText, 
    vsCommandControlType.vsCommandControlTypeButton)
    
    Command command = commands.AddNamedCommand2(_addInInstance, 
    "MyAddin1", "MyAddin1", "Executes the command for MyAddin1", false, 
    1, ref contextGUIDS, 
    (int)vsCommandStatus.vsCommandStatusSupported+(int)vsCommandStatus.
    vsCommandStatusEnabled, (int)vsCommandStyle.vsCommandStylePictAndText, 
    vsCommandControlType.vsCommandControlTypeButton);
    

    Если аргументу MSOButton присвоить значение “false”, надстройка будет выполнять поиск файла ресурса для изображения ее кнопки.Число 1 будет идентификатором этого растрового изображения.(Это будет сделано позднее.)

  9. Закончив, в меню Файл выберите команду Сохранить все, в меню Построение выберите команду Построить решение, а затем выгрузите проект.Для этого в обозревателе решений щелкните правой кнопкой мыши узел проекта и выберите команду Отменить загрузку проекта.

  10. В *** В обозревателе файла ***, используйте *** блокнот *** для редактирования файла Resource1.resx.

  11. Найдите все экземпляры "Image1" и измените их на "1". После этого сохраните файл.

  12. В папке \Resources для надстройки измените имя файла растрового изображения с Image1.bmp на 1.bmp.

  13. Перезагрузите проект (щелкнув правой кнопкой узел проекта в обозревателе решений и выбрав команду Перезагрузить проект) и запустите его.

  14. Выберите меню Сервис.

    Надстройка появится в меню Сервис вместе с пользовательским значком.

Чтобы добавить пользовательское растровое изображение как значок встроенной надстройки Visual C++

  1. Выполните описанные выше действия, но измените следующие элементы.

  2. Создайте новый проект DLL Win32 Visual C++.

  3. Добавьте файл ресурсов (RC).

  4. В представлении ресурсов добавьте растровое изображение (16 x 16) и присвойте ему числовой идентификатор.

    Точечный рисунок должен иметь размер 16 x 16 пикселей и глубину цвета 16 цветов или True Color.

  5. Обновите метод AddNamedCommand2 в Connect.cpp, изменив MSOButton на VARIANT_FALSE и указав в Bitmap идентификатор назначенного ранее растрового изображения.

  6. Постройте библиотеку DLL.

  7. Создайте вложенную папку "1033" (для английского языка) в каталоге со встроенной библиотекой DLL.

  8. Скопируйте вспомогательную библиотеку DLL в каталог "1033".

  9. Откройте AddIn.rgs и добавьте два значения разделов реестра "SatelliteDllName" и "SatelliteDllPath". Примеры.

    HKCU
    {
       NoRemove 'SOFTWARE'
       {
          NoRemove 'Microsoft'
          {
             NoRemove 'VisualStudio'
             {
                NoRemove '8.0'
                {
                   NoRemove 'AddIns'
                   {
                      ForceRemove 
                        'NativeAddinCustBitmap.Connect'
                         {
                           val LoadBehavior = d 0
                           val CommandLineSafe = d 0
                           val CommandPreload = d 1
                           val FriendlyName = s 'NativeAddinCustBitmap'
                           val Description = s 'NativeAddinCustBitmap 
                             Description'
                           val SatelliteDllName = s  
                             'NativeAddinCustBitmapUI.dll'
                           val SatelliteDllPath = s 
                             'C:\Test\CustomBitmap\NativeAddinCustBitmap
                             \NativeAddinCustBitmap\Debug'
                         }
                      }
                   }
                }
             }
          }
       }
    

    Не добавляйте код языка в пути в "SatelliteDllPath".Код языка будет добавлен автоматически во время выполнения.

  10. Выполните построение надстройки еще раз для регистрации обновленных сведений.

См. также

Задачи

Практическое руководство. Изменение значка по умолчанию для надстройки

Практическое руководство. Вывод надстройки в виде кнопки на панели инструментов

Основные понятия

Отображение надстроек в панелях инструментов и меню