使用功能区设计器可以在 MFC 应用程序中创建和自定义功能区。 功能区是一个用户界面(UI)元素,用于将命令组织成逻辑组。 这些组显示在窗口顶部的条带中的单独选项卡上。 功能区替换菜单栏和工具栏。 功能区可以显著提高应用程序可用性。 有关详细信息,请参阅 功能区。 下图显示了一个功能区。
在 Visual Studio 的早期版本中,必须编写使用 MFC 功能区类(如 CMFCRibbonBar 类)的代码来创建功能区。 在 Visual Studio 2010 及更高版本中,功能区设计器提供了用于生成功能区的替代方法。 首先,创建并自定义功能区作为资源。 然后,从 MFC 应用程序中的代码加载功能区资源。 甚至可以结合使用功能区资源和 MFC 功能区类。 例如,可以创建功能区资源,然后使用代码以编程方式在运行时向其添加更多元素。
了解功能区设计器
功能区设计器创建功能区并将其存储为资源。 创建功能区资源时,功能区设计器会执行以下三项作:
- 在项目资源定义脚本(*.rc)中添加一个条目。 在以下示例中,IDR_RIBBON是标识功能区资源的唯一名称,RT_RIBBON_XML是资源类型,ribbon.mfcribbon-ms 是资源文件的名称。
IDR_RIBBON RT_RIBBON_XML "res\\ribbon.mfcribbon-ms"
- 将命令 ID 的定义添加到 resource.h。
#define IDR_RIBBON 307
- 创建一个功能区资源文件(*.mfcribbon-ms),其中包含定义功能区按钮、控件和属性的 XML 代码。 对功能区设计器中的功能区的更改以 XML 的形式存储在资源文件中。 下面的代码示例演示 *.mfcribbon-ms 文件内容的一部分:
<RIBBON_BAR>
<ELEMENT_NAME>RibbonBar</ELEMENT_NAME>
<IMAGE>
<ID>
<NAME>IDB_BUTTONS</NAME>
<VALUE>113</VALUE>
</ID>
若要在 MFC 应用程序中使用功能区资源,请通过调用 CMFCRibbonBar::LoadFromResource 来加载资源。
使用功能区设计器创建功能区
以下是将功能区资源添加到 MFC 项目的两种方法:
创建 MFC 应用程序并配置 MFC 项目向导以创建功能区。 有关详细信息,请参阅 演练:使用 MFC 创建功能区应用程序。
在现有 MFC 项目中,创建功能区资源并加载它。 有关详细信息,请参阅演练:更新 MFC Scribble 应用程序(第 1 部分)。
如果项目已有手动编码的功能区,MFC 具有可用于将现有功能区转换为功能区资源的函数。 有关详细信息,请参阅 “如何:将现有 MFC 功能区转换为功能区资源”。
注释
无法在基于对话框的应用程序中创建功能区。 有关详细信息,请参阅 应用程序类型 MFC 应用程序向导。
自定义功能区
若要在功能区设计器中打开功能区,请在资源视图中双击功能区资源。 在设计器中,可以在功能区、应用程序按钮或快速访问工具栏上添加、删除和自定义元素。 还可以将事件(例如按钮单击事件和菜单事件)链接到应用程序中的方法。
下图显示了功能区设计器中的各种组件。
工具箱: 包含可拖动到设计器图面的控件。
设计器图面: 包含功能区资源的可视表示形式。
类向导: 列出在设计器图面上选择的项的属性。
“资源视图”窗口: 在项目中显示包含功能区资源的资源。
功能区编辑器工具栏: 包含用于预览功能区并更改其视觉主题的命令。
以下主题介绍如何使用功能区设计器中的功能:
功能区元素的定义
应用程序按钮: 显示在功能区左上角的按钮。 “应用程序”按钮将替换“文件”菜单,即使功能区最小化,也可见。 单击按钮时,将显示包含命令列表的菜单。
快速访问工具栏: 显示常用命令的小型可自定义工具栏。
类别:表示功能区选项卡内容的逻辑分组。
类别默认按钮: 功能区最小化时显示在功能区上的按钮。 单击按钮后,类别将重新出现为菜单。
面板: 显示一组相关控件的功能区栏的区域。 每个功能区类别都包含一个或多个功能区面板。
功能区元素: 面板中的控件,例如按钮和组合框。 若要查看可在功能区上托管的各种控件,请参阅 RibbonGadgets 示例:功能区小工具应用程序。