功能区设计器 (MFC)

功能区设计器可让您在 MFC 应用程序中创建和自定义功能区。 功能区是将命令组织到逻辑组的用户界面 (UI) 元素。 这些组显示在整个窗口顶部条中的单独选项卡中。 功能区取代了菜单栏和工具栏。 功能区可以显著改善应用程序的可用性。 有关更多信息,请参见功能区。 下图显示了功能区。

MFC 功能区资源控件

在 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 功能区

  • **应用程序按钮:**显示在功能区左上角的按钮。 应用程序按钮可替换文件菜单,并且即使当将功能区最小化时也仍然可见。 单击该按钮时,系统会显示有命令列表的菜单。

  • **快速访问工具栏:**一个小型自定义工具栏,用于显示常用命令。

  • 类别:逻辑分组表示功能区选项卡的内容。

  • **类别默认按钮:**当最小化功能区时,该按钮会显示在功能区上。 单击该按钮时,类别会作为菜单重新显示出来。

  • **面板:**显示相关控件组的功能区栏区域。 每个功能区类别包含一个或多个功能区面板。

  • **功能区元素:**面板中的控件,例如按钮和组合框。 若要查看功能区中托管的各种控件,请参阅 RibbonGadgets 示例:功能区小工具应用程序

请参见

其他资源

用户界面元素 (MFC)

使用资源文件