功能区设计器可让您在 MFC 应用程序中创建和自定义功能区。 功能区是将命令组织到逻辑组的用户界面 (UI) 元素。 这些组显示在整个窗口顶部条中的单独选项卡中。 功能区取代了菜单栏和工具栏。 功能区可以显著改善应用程序的可用性。 有关更多信息,请参见功能区。 下图显示了功能区。
在 Visual Studio 的早期版本中,必须通过编写使用诸如 CMFCRibbonBar 类 的 MFC 功能区类的代码来创建功能区。 在 Visual Studio 2010 中,功能区设计器为生成功能区提供一种替代方法。 首先,创建并自定义一个功能区作为资源。 然后从 MFC 应用程序的代码中加载功能区资源。 甚至可以同时使用 Ribbon 资源和 MFC Ribbon 类。 例如,通过使用代码,您可以创建功能区资源,然后通过编程在运行时将更多元素添加到该功能区。
了解功能区设计器
功能区设计器将功能区作为资源来创建并存储。 当您创建一个功能区资源时,功能区设计器会执行以下三个操作:
在项目资源定义脚本 (*.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 随意画图应用程序(第 1 部分)。
如果您的项目已有一个手动编码的功能区,则 MFC 具有可以将现有功能区转换为功能区资源的功能。 有关详细信息,请参阅如何:将现有 MFC 功能区转换为功能区资源。
备注
功能区不能在基于对话的应用程序中创建。有关详细信息,请参阅MFC 应用程序向导的应用程序类型。
自定义功能区
若要打开功能区设计器中的功能区,请双击“资源视图”中的功能区资源。 在设计器中,可以添加、移除和自定义功能区、应用程序按钮或快速访问工具栏上的元素。 您还可以将事件与应用程序中的某个方法链接起来,例如,单击按钮事件和菜单事件。
下图显示了功能区设置器中的各种组件。
**工具箱:**包含可以拖动到设计器图面的控件。
**设计器图面:**包含功能区资源的可视化表示形式。
**属性窗口:**列出在设计器图面上选中的项的属性。
**资源视图窗口:**显示包含项目中功能区资源的资源。
**功能区编辑器工具栏:**包含可用于预览功能区并更改其视觉主题的命令。
下列主题介绍了如何使用功能区设计器中的功能:
功能区元素的定义
**应用程序按钮:**显示在功能区左上角的按钮。 应用程序按钮可替换文件菜单,并且即使当将功能区最小化时也仍然可见。 单击该按钮时,系统会显示有命令列表的菜单。
**快速访问工具栏:**一个小型自定义工具栏,用于显示常用命令。
类别:逻辑分组表示功能区选项卡的内容。
**类别默认按钮:**当最小化功能区时,该按钮会显示在功能区上。 单击该按钮时,类别会作为菜单重新显示出来。
**面板:**显示相关控件组的功能区栏区域。 每个功能区类别包含一个或多个功能区面板。
**功能区元素:**面板中的控件,例如按钮和组合框。 若要查看功能区中托管的各种控件,请参阅 RibbonGadgets 示例:功能区小工具应用程序。