我正在为 MS Word 2007 开发一个共享插件。我想添加一个在右键单击选定文本时弹出的按钮。附加的快照应该清楚地说明这一点。
目前,用户必须选择文本,然后单击自定义控件上的按钮。如果在选择文本后,她/他可以右键单击它并在弹出窗口中按下相关按钮,这将容易得多。
我正在为 MS Word 2007 开发一个共享插件。我想添加一个在右键单击选定文本时弹出的按钮。附加的快照应该清楚地说明这一点。
目前,用户必须选择文本,然后单击自定义控件上的按钮。如果在选择文本后,她/他可以右键单击它并在弹出窗口中按下相关按钮,这将容易得多。
您需要扩展正确的上下文菜单。以下链接用文字(无源代码)描述了如何实现这一点:
也许这个链接可能会对编码有所帮助。我自己没有尝试过,但它可能指向正确的方向。
祝你好运!:)
编辑:
它必须是功能区样式的上下文菜单还是普通上下文菜单中的按钮就足够了?如果正常菜单没问题,您可以使用这种方式(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 执行此操作,我不确定它是否与共享加载项技术完全相同,但也许它确实有帮助;)
来自MSDN -
您不能以编程方式修改浮动工具栏。
在文档的一半多一点。在迷你工具栏上搜索。
编辑:您在上图中圈出的弹出窗口不会出现在右键单击时,它会出现在突出显示中。上下文菜单(在所选文本下方)可以具有您的自定义功能,但不在迷你工具栏中。
这是如何做到的......
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);
}
http://groups.google.com/group/microsoft.public.word.docmanagement/browse_thread/thread/cf55d996b3f51a06/65b2bad22e2a3583?lnk=st&q=Removing+Items+from+Word+2007是如何在 VBA 中完成的。使用 COM 非常相似,并且可能创建了一个 word 插件(虽然我没有尝试过)您基本上需要找到上下文菜单控件并向其添加一个项目(您的函数)。