没有合适的资源?快使用搜索试试~ 我知道了~
首页自定义office2007/2010 excel和word菜单
2007 Microsoft Office 系统中的许多应用程序都面貌一新。功能区用户界面 (UI) 功能以进行了效率和可发现能力优化的、更简单的界面系统替代了采用分层菜单、工具栏和任务窗格的现有系统。新的 UI 改进了上下文菜单、屏幕提示、小型工具栏和键盘快捷键,这提高了用户效率和生产力。 本文提供了实现excel文档菜单自定义的方法(附图)和源代码(word文档也是一样,类比操作即可)希望对您实现办公自动化或者office开发有些帮助
资源详情
资源评论
资源推荐
发布日期 : 2006-09-07 | 更新日期 : 2006-09-07
Frank Rice
Microso Corporaon
适用于:
2007 Microso Oce 套件
Microso Oce Access 2007
Microso Oce Excel 2007
Microso Oce PowerPoint 2007
Microso Oce Outlook 2007
Microso Oce Word 2007
摘要:了解在 2007 Microso Oce 版本中自定义功能区用户界面 (UI) 时可使用的应用场景
和 XML 标记。在 2007 版本中,功能区 UI 替代了菜单、工具栏和大多数任务窗格 UI。
改进的用户界面
2007 Microso Oce 系统中的许多应用程序都面貌一新。功能区用户界面 (UI) 功能以进行
了效率和可发现能力优化的、更简单的界面系统替代了采用分层菜单、工具栏和任务窗格
的现有系统。新的 UI 改进了上下文菜单、屏幕提示、小型工具栏和键盘快捷键,这提高了
用户效率和生产力。
注意 2007 Microso Oce 版本中实现了功能区 UI 功能,该版本包括 Microso Oce Access
2007、Microso Oce Excel 2007、Microso Oce PowerPoint 2007、Microso Oce Word
2007 和 Microso Oce Outlook 2007。Microso Oce Outlook 2007 中还在下列情况下实现
了该功能:用户创建或编辑电子邮件消息;或使用联系人并位于“日历”中。可通过组合使
用 XML 标记和 Microso Visual Studio 中支持的任何基于 Microso .NET 的语言来自定义功
能 区 UI 。 还 可以使用 Microso Visual Basic Applicaons (VBA) 、 Microso Visual C++ 和
Microso Visual Basic 6.0 自定义功能区 UI。
本文提供有关新用户界面的详细论述,并提供功能区 UI 的代码示例和自定义应用场景。
有关功能区控件和属性列表的详细参考信息,请参阅 Customizing the Oce (2007) Ribbon
User Interface for Developers (Part 2 of 2)(英文)。
要了解 Microso Oce 应用程序 2007 版本用户界面 (UI) 系统的开发人员概述及 UI 重新设
计背后的目标,以及了解重新设计的 UI 对自定义解决方案和加载项的影响,请参阅
Developer Overview of the User Interface for the 2007 Microso Oce System(英文)。
有关这些功能的详细信息,请参阅 2007 Microso Oce System Beta 2 附带的 Ribbon UI 自
述文件。
返回页首
增强用户体验的新方法
应用程序开发人员已利用 Oce 先前版本中的工具和编程结构通过创造性的方法来扩展
UI。例如,开发人员可通过 CommandBars 对象模型在他们的自定义 Oce 应用程序中构建
丰富的解决方案。2007 Oce 版本延续了这一传统,它引入了一种创新的模型,开发人员
可以使用它来增强用户体验。可使用可扩展标记语言 (XML) 和若干种传统编程语言之一来
操纵组成功能区 UI 的组件。由于 XML 是纯文本形式,因此可在任何文本编辑器中创建自
定义文件,这简化了对 UI 的操作。而且,只需进行最基本的调整便可重复使用自定义功能
区 UI 文件,因为每个应用程序都使用相同的编程模型。例如,可重复使用在 Word
2007、Excel 2007、Access 2007 或 PowerPoint 2007 中创建的自定义功能区 UI 文件。
图 1. 2007 Oce 版本应用程序中的功能区 UI
使用 XML 标记文件自定义 UI 大大减少了对基于 CommandBars 对象模型的复杂加载项的需
要。不过,在先前版本的 Oce 中编写的加载项在进行微小修改后或不做任何修改,即可
在功能区 UI 中继续使用。本文稍后有对加载项的论述。
返回页首
为大多数 Oce 应用程序自定义功能区 UI
可按下列方法在 Word 2007、Excel 2007 或 PowerPoint 2007 中创建自定义应用程序级别功
能区 UI:
在托管代码或非托管代码中使用 COM 加载项
使用应用程序特定的加载项,如 .ppam 文件和 .xlam 文件
使用 Word 2007 中的模板(.dotm 文件)
在一个典型的应用场景中,COM 加载项中的代码包含从外部自定义文件或代码自身包含的
XML 返回 XML 标记的过程。应用程序启动时,将加载加载项并执行返回 XML 标记的代码。
代码将根据某种 XSD 架构验证 XML 标记,然后将其加载到内存中并应用给功能区 UI。随
后将出现修改过的功能区 UI。功能区 UI 命令和控件还使用回调过程来执行加载项中的代
码。
文 档 级 别 自 定 义 使 用 相 同 的 XML 标记 和具 有下 列扩 展 名 之一 的 Open XML 格 式 文
件:.docx、.docm、.xlsx、.xlsm、.pptx 或 .pptm。在此应用场景中,将创建一个包含 XML
标记的自定义文件并将其保存到某个文件夹。然后修改 Open XML 格式容器中的部分,使
其指向自定义文件。在 Oce 应用程序中打开文档时,自定义文件将加载到内存中并应用
给功能区 UI。然后命令和控件将调用文档中包含的代码来提供其功能。
返回页首
现有解决方案是怎样的?
在先前版本的 Oce 中,开发人员使用 CommandBars 对象模型来构建修改 UI 的 Visual
Basic 代码。在 2007 版本中,在大多数情况下,这些旧代码不做修改便可继续使用。不过 ,
在 Microso Oce 2003 中对工具栏所做的更改现在会出现在一个“加载项”选项卡上。所显
示的自定义类型取决于加载项的原始设计。例如,Oce 将创建一个“菜单命令”组,其中包
含添加到先前菜单结构(“文件”菜单、“插入”菜单、“工具”菜单等)中的项目。它还将创建
一个“工具栏命令”组,其中包含添加到先前内置工具栏(“标准”工具栏、“格式”工具栏、“图
片”工具栏等)中的项目。此外,加载项文档添加的自定义工具栏将出现在“加载项”选项卡
的“自定义工具栏”组中。
返回页首
使用回调
在开始详细介绍功能区 UI 自定义之前,我们先来了解一下回调的使用。就功能区扩展性而
言,可指定回调以在运行时通过 UI 更新属性和执行操作。例如,假定某个按钮对应
onAcon 回调函数。功能区标记将如下所示:
<bu?on id="myBu?on" onAcon="MyBu?onOnAcon" />
该 标 记 指 示 在 该 按 钮 被 单 击 时 Microso Oce 调 用 MyBu?onOnAcon 函 数 。
MyBu?onOnAcon 函数的签名视所选语言而定;以下为 C 中的一个示例:
public void MyBu?onOnAcon (IRibbonControl control)
{
if (control.Id=="myBu?on")
{
System.Windows.Forms.MessageBox.Show("按钮被单击!");
}
}
只要签名与下表中的签名相符,函数 MyBu?onOnAcon 就可以拥有任何名称:
Customizing the Oce (2007) Ribbon User Interface for Developers (Part 2 of 2):Table 12. List of
all C and VBA callbacks and signatures(英文)
Customizing the Oce (2007) Ribbon User Interface for Developers (Part 2 of 2):Table 13. List of
all C++ and Visual Basic .NET callbacks and signatures(英文)
必须将其声明为 public。可通过 control 参数为许多不同的控件使用相同的回调函数。
注意 XML 自定义标记中的所有属性均使用小写首字母表示法,即大写除第一个词外每个词
的第一个字符。例如,onAcon 和 insertBefore。
返回页首
自定义功能区 UI 的两种方法
Oce 的 2007 版本(Access 2007 属于例外,本文后面有对它的介绍)提供了两种使用 XML
标记自定义功能区 UI 的方法:使用包含 XML 标记的有效 Open XML 格式文件或使用包含
XML 标记的 COM 加载项。在该 XML 标记中指定的任何更改均表现为现有功能区 UI 的附加
项。例如,如果添加代表一个自定义选项卡的 XML 标记,将会添加一个选项卡。
注意 功能区中有多个可设置各种属性的特性。有关属性列表,请参阅表 14. 功能区属性列
表。
功能区标记中的所有控件都必须具有下列标识符之一。
表 1. 所有控件
都 必 须 与 下 列
标 识 符 之 一 联
用 标识符
说明
ID
与自定义控件联用。该标识符作为 IRibbonControl 上的一个属性传递给
回调函数。
idMso
与内置控件联用。
idQ
与合格控件联用。例如:
<customUI xmlns=h?p://schemas.microso.com/oce/2006/01/customui
xmlns:x="myNameSpace"><bu?on idQ="x:myBu?on" . . . />
注意 通过创建一个名称空间 x,可将两种不同的加载项添加到同一自定义组(它们只是需
要通过该自定义组的限定名称对其进行引用)。
使用 Open XML 格式文件自定义功能区 UI
在文档级别,使用 XML 标记自定义功能区 UI 的过程包括下列步骤。有关详细信息,请参
阅本文后面的在功能区 UI 中添加基于文档的加载项。
使用 Open XML 格式文件自定义功能区 UI
通过添加在功能区 UI 中添加新组件、修改现有组件或隐藏组件的 XML 标记,可在任意文
本编辑器中创建自定义文件。将该文件保存为 customUI.xml。
在桌面上创建名为 customUI 的文件夹,然后将自定义文件复制到该文件夹。
使用自定义 UI 架构验证 XML 标记。
注意 该步骤是可选步骤。
在 Oce 应用程序中创建一个文档,然后将其保存为具有下列扩展名之一的 Open XML 格
式文件:.docx、.docm、.xlsx、.xlsm、.pptm 或 .pptx。
包含宏的文件具有后缀 m。这些文件还包括由功能区命令和控件调用的过程。
为文档的文件名添加 .zip 扩展名,然后打开文件。
通过将文件夹从桌面拖动到该 ZIP 文件中,将该自定义文件添加到容器。
将 .rels 文件从 Zip 文件提取到桌面上。一个包含 .rels 文件的 _rels 文件夹即复制到桌面上。
打开位于 _rels 文件夹中的 .rels 文件,添加用于在文档文件和自定义文件之间创建关系的
一行代码,然后保存文件。
将 _rels 文件夹添加回容器,从而覆盖现有文件。
通过删除 .zip 扩展名,将文件重命名为其原始文件名。
之后,在 Oce 应用程序中打开文件时,所显示的功能区 UI 将具有自定义内容。
使用 COM 加载项自定义功能区 UI
如果在应用程序级别进行自定义,无论打开哪一个文档,所产生的修改过的功能区 UI 都会
出现在应用程序中。首先,需要创建 COM 加载项来进行这些修改。
使用 COM 加载项自定义功能区 UI
创建一个 COM 加载项项目。
所创建的加载项必须实现 Extensibility.IDTExtensibility2 接口(所有 COM 加载项都须如此)
还必须实现附加 IRibbonExtensibility 接口(位于 Microso.Oce.Core 名称空间中)。
构建加载项并设置项目,然后安装项目。
启动 Microso Oce 应用程序。
加载项加载后,将触发 IDTExtensibility2::OnConnecon 事件,与在先前版本的 Oce 中一样,
该事件会将加载项初始化。
接下来将调用 QueryInterface 方法,它确定是否实现了 IRibbonExtensibility 接口。
如果已实现,将调用 IRibbonExtensibility::GetCustomUI 方法,该方法加载 XML 标记(从
XML 自定义文件或从过程中内嵌的 XML 标记),然后将自定义功能区 UI 加载到应用程序
中。
最后,用户将可以开始使用自定义功能区 UI。
XML 标记中指定的每个控件均通过调用回调过程来公开其功能。例如,一个按钮控件的
XML 标记可以指定一个 onAcon 属性,当用户单击该按钮时,该属性指向的过程将开始执
行。在大多数情况下,回调过程都会公开一个标识该控件的 IRibbonControl 接口。也可以
传递其他参数。例如,可以传递一个 Boolean 对象,它指定一个切换按钮的按下或未按下
状态。IRibbonControl 接口实现了三个属性:Context 对象、Id 对象和 tag 属性。Context 对
象是包含触发回调的功能区的活动窗口。Id 对象是标记中指定的自定义控件的 String 标识
符。tag 属性是一个不唯一属性,可选择是否在标记中指定该属性。
返回页首
XML 标记文件的一般格式
可以使用 XML 标记自定义功能区 UI。以下示例显示的是一个在 Word 2007 中自定义功能区
UI 的 XML 标记文件的一般格式。
<customUI xmlns="h?p://schemas.microso.com/oce/2005/08/customui" >
<ribbon startFromScratch="false" >
<tabs>
<tab idMso="TabWrite">
<group idMso="GroupFont" visible="false" />
</tab>
<tab id="CustomTab" label="我的选项卡">
<group id="mygroup" label="示例组" >
<bu?on id="Bu?on1" label="我的大按钮"
size="large" onAcon="MyMacro" />
<bu?on id="Bu?on2" label="我的正常按钮"
size="normal" onAcon="MyMacro" />
</group >
<group id="SimpleControls" label="我的组">
<toggleBu?on id="ToggleBu?on1" size="large"
label="大切换按钮" getPressed="MyMacro" />
<checkBox id="CheckBox1" label="复选框"
toolp="这是一个复选框" onAcon="MyMacro" />
<editBox id="EditBox1" getText="MyMacro" label=
"我的编辑框" onChange="MyMacro"/>
<comboBox id="Combo1" label="我的组合框"
showItemLabel="false" onChange="MyMacro">
<item id="Zip1" label="33455" />
<item id="Zip2" label="81611" />
<item id="Zip3" label="31561" />
</comboBox>
<advanced>
<bu?on id="Launcher" toolp="我的启动器"
onAcon="MyMacro" />
</advanced>
</group>
</tab>
</tabs>
</ribbon>
</customUI>
该 XML 标记会产生修改过的功能区 UI,如下图所示:
剩余21页未读,继续阅读
AnAppleADay
- 粉丝: 1
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- stc12c5a60s2 例程
- Android通过全局变量传递数据
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0