PowerPoint右键菜单下添加项目

泣之树 2015-05-18 01:28:14
目前在做一个用C#写的PowerPoint插件。其中一个功能就是想在右键菜单里添加两个项目比如“添加**”和“查询**”现在目前的情况是,我只能做到将这两项加在文件顶端的工具栏中。却怎么也加不到右键菜单中。如何将

这两个项目右键菜单中加到请各位大神指点。

下面是我的程序


using PPT = Microsoft.Office.Interop.PowerPoint;
using MSO = Microsoft.Office.Core;
using System.Windows.Forms;
using System.IO;

public void OnStartupComplete(ref System.Array custom){

commandbars = (applicationObject as PPT.Application).CommandBars;

//菜单命令

MSO.CommandBar fontRightPopup = null;
try
{

fontRightPopup = commandbars["Menu Bar"];//这个地方我试过很多参数都不好用

fontRightPopup.Reset();

eleImportForm = (MSO.CommandBarButton)fontRightPopup.Controls.Add(Before: 1);//菜单项的位置
eleImportForm.Caption = "添加**";
eleImportForm.Style = MSO.MsoButtonStyle.msoButtonCaption;
eleImportForm.Tag = "k";
eleImportForm.Click += new MSO._CommandBarButtonEvents_ClickEventHandler(EleImport_Click);//添加**_Click
assetManagement = (MSO.CommandBarButton)fontRightPopup.Controls.Add(Before: 2);//菜单项的位置
assetManagement.Caption = "查询**";
assetManagement.Style = MSO.MsoButtonStyle.msoButtonCaption;
assetManagement.Tag = "f";
assetManagement.Click +=
new MSO._CommandBarButtonEvents_ClickEventHandler(AssetManagement_Click);//资产管理_Click
eleImportForm.Visible = true;
assetManagement.Visible = true;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}

private object applicationObject;
private object addInInstance;
private MSO.CommandBarButton eleImportForm;//右键菜单选项(添加**)
private MSO.CommandBarButton assetManagement;//右键菜单选项(查询**)
...全文
1608 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
TOPZF 2017-10-24
  • 打赏
  • 举报
回复
请问楼主问题解决了吗,我这边也遇到这样的问题。
gd_linlong 2016-08-23
  • 打赏
  • 举报
回复
http://blog.csdn.net/lassewang/article/details/7904474 这个是在word里面添加右击菜单栏,你参考下!
泣之树 2015-06-15
  • 打赏
  • 举报
回复
经过一系列的调查,我发现用我上面的方式走不通。如何其他人有此困惑的人。可以参照下面的文章。 http://download.csdn.net/download/perfeson/6591085 另外,用上面链接里的外接工程开发的时候,生成开发包时,可能会有些麻烦。因为注册表要手动写进去。所以这地方请注意。
泣之树 2015-05-19
  • 打赏
  • 举报
回复
@dsd999 commandbars的参数我都打出来了。也就Menu Bar 比较靠谱点 下面是commandbars所有可用参数 Comments 评论 Menu Bar 菜单栏 Drawing 图 Standard 标准 Task Pane 任务窗格 Property Editor 属性编辑器 Office Clipboard Office剪贴板 XML Source XML源 Research 研究 XML Document XML文档 Signatures 签名 Document Actions 文档操作 Clip Art 剪辑艺术 Selection 选择 Format Object 格式对象 Document Management 文档管理 Document Updates 文档更新 Mail Merge Panes 邮件合并窗格 Fax Service 传真服务 Meeting Workspace 会议工作区 Attachment Options 附件选项 Accessibility Checker 辅助功能检查 Proofing 打样 Dictionaries 字典 Thesaurus 叙词表 Menu Bar (Slide Show) 菜单栏(幻灯片) &Legacy Keyboard Support 传统的键盘支持 Formatting 格式化 Slide Sorter 幻灯片浏览 Web Print Preview 打印预览 Stop Recording 停止记录 Slide Master View 幻灯片母版视图 Handout Master View 讲义母版视图 Notes Master View 备注母版视图 Grayscale View 灰度视图 WordArt 艺术字 Picture 图片 Drawing Canvas 绘图画布 Diagram 图 Ink Drawing and Writing 墨迹绘图和书写 Ink Annotations 墨迹注释 Tables and Borders 表格和边框 Organization Chart 组织结构图 Recording 记录 Slide Show 幻灯片 Reviewing 回顾 Shadow Settings 阴影设置 3-D Settings 三维设置 Control Toolbox 控制工具箱 Visual Basic Outlining 概述 Shortcut Menus 快捷菜单 Custom Animation 自定义动画 Reuse Slides 重用幻灯片 Revisions 修订 Slider Sorter 滑块分拣机 Thumbnails 缩略图 Slide Gap 滑动间隙 Section Label 部分标签 SlideShow Go To Section 幻灯片转到第 Notes Pane 备注窗格 Outliner 大纲 Slide Show 幻灯片 Slide Show 幻灯片 Nondefault Drag and Drop 默认拖放 Curve 曲线 OLE Object OLE对象 Connector 连接器 WordArt Context Menu 艺术字的上下文菜单 Rotate Mode 旋转模式 Curve Segment 曲线段 Curve Node 曲线节点 ActiveX Control ActiveX控件 Spelling 拼写 Pictures Context Menu 图片的上下文菜单 Canvas Popup 帆布弹出 Frames 帧 Shapes 形状 Notes View Slide 注意查看幻灯片 Slide Show Browse 幻灯片浏览 PowerPoint Previewer PowerPoint预览 Hyperlinked Object 超链接的对象 Tables 表 Table Cells 表格单元格 Organization Chart Popup 组织机构图弹出 Diagram 图 OrgChart Text Edit PopUp 组织结构图的文本编辑窗口 Comment Popup 评论弹出 Slide View Ink Annotation Popup 幻灯片视图墨迹注释弹出 Revision Marker Popup 修订标记弹出 Fill Color 填充颜色 Line Color 线的颜色 Font Color 字体颜色 Annotation Pens 注释笔 Drawing and Writing Pens 画写笔 Annotation Pens 注释笔 Drawing and Writing Pens 画写笔 Order 秩序 Nudge 轻推 Rotate or Flip 旋转或翻转 Align or Distribute 对齐或分布 Insert Shape 插入形状 Lines 线 Connectors 连接器 Basic Shapes 基本形状 Callouts 标注 Flowchart 流程图 Block Arrows 挡箭 Stars & Banners 星星 & 横幅 Action Buttons 动作按钮 Borders 边界 AutoShapes 自选图形 Clipboard 剪贴板 Envelope 信封 System 系统 Ribbon 丝带
dsd999 2015-05-19
  • 打赏
  • 举报
回复
你需要先确定 Menu Bar 是否就是你所要增加的? 方法就是先把Menu Bar 已有的菜单输出,和右键菜单对应,看是否一致。
dsd999 2015-05-19
  • 打赏
  • 举报
回复
上面这段代码是outlook里选中某个folder时添加右键,你参考下。

还有一句关键的: if (tmpbar.Name == "Folder Context Menu")
dsd999 2015-05-19
  • 打赏
  • 举报
回复
Office.CommandBar bar = null;
            Office.CommandBar tmpbar = null;

           IEnumerator enumer = ActiveExplorerCBars.GetEnumerator();

            while (enumer.MoveNext()) 
            { 
                tmpbar = (Microsoft.Office.Core.CommandBar)enumer.Current;

                if (tmpbar.Name == "Folder Context Menu")
                {
                    bar = tmpbar;
                    break;
                }

            }

            if (bar != null)
                AddContextButton(bar);
dsd999 2015-05-19
  • 打赏
  • 举报
回复
用的哪个版本?

5,139

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧