Плагин MS Word, добавление кнопки, которая появляется при щелчке правой кнопкой мыши по выделенному тексту - PullRequest
1 голос
/ 26 марта 2009

Я работаю над общим надстройкой для MS Word 2007. Я хотел бы добавить кнопку, которая появляется при щелчке правой кнопкой мыши по выделенному тексту. Приложенный снимок должен прояснить это.

В настоящее время пользователь должен выбрать текст, а затем нажать кнопку в пользовательском элементе управления. Было бы намного проще, если бы после выбора текста он / она мог щелкнуть по нему правой кнопкой мыши и нажать соответствующую кнопку во всплывающем окне.

alt text

Ответы [ 4 ]

2 голосов
/ 07 апреля 2009

Вот как это можно сделать ...

Microsoft.Office.Core.CommandBar cellbar = diff.CommandBars["Text"];
Microsoft.Office.Core.CommandBarButton button = (Microsoft.Office.Core.CommandBarButton)cellbar.FindControl(Microsoft.Office.Core.MsoControlType.msoControlButton, 0, "MYRIGHTCLICKMENU", Missing.Value, Missing.Value);
if (button == null)
{
   // add the button
   button = (Microsoft.Office.Core.CommandBarButton)cellbar.Controls.Add(Microsoft.Office.Core.MsoControlType.msoControlButton, Missing.Value, Missing.Value, cellbar.Controls.Count + 1, true);
   button.Caption = "My Right Click Menu Item";
   button.BeginGroup = true;
   button.Tag = "MYRIGHTCLICKMENU";
   button.Click += new Microsoft.Office.Core._CommandBarButtonEvents_ClickEventHandler(MyButton_Click);
}
2 голосов
/ 31 марта 2009

Вам необходимо расширить правильное контекстное меню. Следующая ссылка в словах (без исходного кода) описывает, как этого можно достичь:

Shared Addin с использованием Word

Может быть, эта ссылка может немного помочь с кодированием. Я сам не пробовал, но это может указывать в правильном направлении.

Удачи! :)

Изменить:

Должно ли это быть контекстное меню стиля ленты или достаточно кнопки в обычном контекстном меню? Если нормальное меню будет в порядке, вы можете использовать этот способ (C #):

 Microsoft.Office.Core.CommandBar cb = this.Application.CommandBars["Text"];

 Office.CommandBarControl newButton = cb.Controls.Add(Office.MsoControlType.msoControlButton, missing, missing, missing, missing);  
 newButton.Caption = "Test";
 newButton.Visible = true;
 newButton.Enabled = true;

Вы можете сделать это с помощью VSTO, я не уверен, работает ли он точно так же с технологией совместно используемой надстройки, но, возможно, это поможет;)

1 голос
/ 04 апреля 2009

С MSDN -

Нельзя программно изменить мини-панель инструментов.

чуть-чуть на полпути вниз по документу. Поиск на мини-панели инструментов.

Edit: Всплывающее окно, которое вы обвели на изображении выше, не появляется при щелчке правой кнопкой мыши, оно отображается в выделении Контекстное меню (под выделенным текстом) может иметь пользовательские функции, но не на мини-панели инструментов.

0 голосов
/ 30 марта 2009

http://groups.google.com/group/microsoft.public.word.docmanagement/browse_thread/thread/cf55d996b3f51a06/65b2bad22e2a3583?lnk=st&q=Removing+Items+from+Word+2007 - как это сделать в VBA. Это очень похоже на использование COM и, возможно, создание надстройки для слова (хотя я не пробовал). Вам нужно найти элемент управления контекстного меню и добавить в него элемент (ваша функция).

...