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

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

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

альтернативный текст


person Nikhil    schedule 26.03.2009    source источник


Ответы (4)


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

Общая надстройка с использованием 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, я не уверен, что это работает точно так же с технологией общих надстроек, но, возможно, это поможет;)

person Marcus    schedule 31.03.2009

Из MSDN

Вы не можете изменить мини-панель инструментов программно.

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

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

person Brandon    schedule 03.04.2009
comment
Я получаю всплывающее окно при щелчке правой кнопкой мыши, а также при выделении (Word 2007). - person Steve; 06.04.2009
comment
Истинный. Я не понимал, что он появляется при щелчке правой кнопкой мыши, а также при выделении. - person Brandon; 08.04.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);
}
person Nikhil    schedule 06.04.2009
comment
Это также добавляет кнопку в контекстное меню, а не на мини-панель инструментов. - person Brandon; 08.04.2009
comment
@Marcus Да, но он добавляет проверку, чтобы избежать дублирования, иначе вы получите несколько кнопок, по одной для каждого нового экземпляра. @ Брэндон Да, но это самое близкое, что вы можете получить. - person Nikhil; 09.04.2009

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

person jle    schedule 30.03.2009