Плагин MS Word, добавление кнопки, которая появляется при щелчке правой кнопкой мыши по выделенному тексту
Я работаю над общим плагином для MS Word 2007. Я хотел бы добавить кнопку, которая появляется при щелчке правой кнопкой мыши по выделенному тексту. Приложенный снимок должен прояснить это.
В настоящее время пользователь должен выбрать текст, а затем нажать кнопку в пользовательском элементе управления. Было бы намного проще, если бы после выбора текста он / она мог щелкнуть правой кнопкой мыши по нему и нажать соответствующую кнопку во всплывающем окне.
4 ответа
Вот как это можно сделать...
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);
}
Из MSDN -
Вы не можете изменять панель инструментов Mini программно.
немного на полпути вниз по документу. Поиск на мини-панели инструментов.
Редактировать: всплывающее окно, которое вы обвели на изображении выше, не появляется при щелчке правой кнопкой мыши, оно отображается при выделении. Контекстное меню (под выделенным текстом) может иметь пользовательские функции, но не на мини-панели инструментов.
Вам необходимо расширить правильное контекстное меню. Следующая ссылка описывает словами (без исходного кода), как этого можно достичь:
Может быть, эта ссылка может немного помочь с кодированием. Я сам не пробовал, но это может указывать в правильном направлении.
Удачи!:)
Редактировать:
Это должно быть контекстное меню стиля ленты или кнопки в обычном контекстном меню будет достаточно? Если нормальное меню будет в порядке, вы можете использовать этот способ (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, я не уверен, работает ли он точно так же с технологией общего доступа, но, возможно, это поможет;)
http://groups.google.com/group/microsoft.public.word.docmanagement/browse_thread/thread/cf55d996b3f51a06/65b2bad22e2a3583?lnk=st&q=Removing+Items+from+Word+2007 том, как это сделать в VBA. Это очень похоже на использование COM и, вероятно, создание надстройки для слова (хотя я не пробовал). Вам нужно найти элемент управления контекстного меню и добавить в него элемент (ваша функция).