<officeMenu> <!-- Everything else goes here --> </officeMenu>
下表列出了Office菜单的子元素。
对象 | 用来做什么 |
---|---|
control | 引用通用控件对象,能够表现其它对象例如按钮、拆分按钮、组,等 |
button | 引用通过正常的单击就能执行某类操作的按钮控件 checkbox 引用复选框控件 |
gallery | 引用库控件 |
toggleButton | 引用切换按钮,在True/False值之间切换 |
menuSeparator | 引用菜单分隔条项 |
splitButton | 引用能够用于容纳其它控件例如按钮控件的拆分按钮 |
menu | 引用能够用于容纳其它控件例如按钮控件的菜单控件 |
dynamicMenu | 引用动态菜单,能够在运行时接受动态的XML内容 |
下图为定制Excel中Office菜单的一个示例。在Office菜单中添加了一个拆分按钮My Tools,包含两个组My Toolset1和My Toolset2。
在这个示例中,我们创建了包含菜单(根据特定任务组织的几个按钮)的拆分按钮,XML代码如下:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon startFromScratch="false"> <officeMenu> <splitButton id="rxsbtn" insertBeforeMso="FilePrintMenu"> <button id="rxbtnSplitMain" label="My Tools" imageMso="CreateModule"/> <menu id="rxmnu" itemSize="large"> <menuSeparator id="rxsep1" title="My Toolset 1"/> <button id="rxbtnEmailSheet" imageMso="FileSendAsAttachment" label="E-mail sheet as attachment" description="E-mail the active sheet as an attachment" onAction="rxshared_click"/> <button id="rxbtnEmailSupport" imageMso="MessageToAttendeesMenu" label="E-mail technical support" description="E-mail technical support about issues on this application..." onAction="rxshared_click"/> <button id="rxbtnEmailBug" imageMso="ResearchPane" label="E-mail a bug" description="E-mail technical support about bugs found on this application..." onAction="rxshared_click"/> <menuSeparator id="rxsep2" title="My Toolset 2"/> <button id="rxbtnPrintPDF" imageMso="FilePrint" label="Print to PDF" description="Print active sheet to PDF file format" onAction="rxshared_click"/> </menu> </splitButton> </officeMenu> </ribbon> </customUI>
实际上,菜单控件也可以提供相同的定制而不须像拆分按钮那样的中间步骤,例如上例可以修改如下:
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon startFromScratch="false"> <officeMenu> <menu id="rxmnu" insertBeforeMso="FilePrintMenu" label="My Tools" imageMso="CreateModule" itemSize="large"> <menuSeparator id="rxsep1" title="My Toolset 1"/> <button id="rxbtnEmailSheet" imageMso="FileSendAsAttachment" label="E-mail sheet as attachment" description="E-mail the active sheet as an attachment" onAction="rxshared_click"/> <button id="rxbtnEmailSupport" imageMso="MessageToAttendeesMenu" label="E-mail technical support" description="E-mail technical support about issues on this application..." onAction="rxshared_click"/> <button id="rxbtnEmailBug" imageMso="ResearchPane" label="E-mail a bug" description="E-mail technical support about bugs found on this application..." onAction="rxshared_click"/> <menuSeparator id="rxsep2" title="My Toolset 2"/> <button id="rxbtnPrintPDF" imageMso="FilePrint" label="Print to PDF" description="Print active sheet to PDF file format" onAction="rxshared_click"/> </menu> </officeMenu> </ribbon> </customUI>
结果如下图所示:
可以看出,实现的效果并没有太大的差异。如果认真观察,就会发现拆分按钮在箭头和按扭之间有一条分隔线,而菜单则没有。
上面的示例是在Office菜单中添加自已自定义的项目,当然也可以在Office菜单里的内置元素中添加自定义项目或内置项目,此时您需要知道在什么元素中放置项目,下表列出了Office菜单元素。
表:Office菜单元素
元素 | 类型 | IDMSO | 应用于 |
---|---|---|---|
新建 | 按钮 | FileMenu | Excel/Access/Word |
打开 | 按钮 | FileOpen | Excel/Word |
打开 | 按钮 | FileOpenDatabase | Access |
保存 | 按钮 | FileSave | Excel/Word/Access |
另存为 | 拆分按钮 | FileSaveAsMenu | Excel/Word |
另存为 | 拆分按钮 | FileSaveAsMenuAccess | Access |
打印 | 拆分按钮 | FilePrintMenu | Excel/Word/Access |
准备 | 菜单 | FilePrepareMenu | Excel/Word |
管理 | 菜单 | FileManageMenu | Access |
发送 | 菜单 | FileSendMenu | Excel/Word |
电子邮件 | 按钮 | FileSendAsAttachment | Access |
发布 | 菜单 | MenuPublish | Excel/Word/Access |
关闭 | 按钮 | FileClose | Excel/Word |
关闭数据库 | 按钮 | FileCloseDatabase | Access |