TN023:标准 MFC 资源

此说明介绍 MFC 库提供和所需的标准资源。

标准资源

MFC 提供可在应用程序中使用的两类预定义资源:剪贴画资源和标准框架资源。

剪贴画资源是框架不依赖的其他资源,但可能需要将其添加到应用程序的用户界面。 MFC 常规示例 CLIPART 中包含以下剪贴画资源:

  • Common.rc:包含以下资源的单个文件:

    • 表示各种业务和数据处理任务的大量图标集合。

    • 几个常见的游标(另请参阅 Afxres.rc)。

    • 包含多个工具栏按钮的工具栏位图。

    • Commdlg.dll 使用的位图和图标资源。

  • Indicate.rc:包含状态栏键状态指示符(如用于大写锁定的“CAP”)的字符串资源。

  • Prompts.rc:包含每个预定义命令的菜单提示字符串资源,例如ID_FILE_NEW的“创建新文档”。

  • Commdlg.rc:包含标准 COMMDLG 对话框模板的 Visual C++兼容的 .rc 文件。

标准框架资源是具有 AFX 定义的 ID 的资源,框架的内部实现依赖于这些 ID。 你很少需要更改这些 AFX 定义的资源。 如果这样做,应遵循本主题后面概述的过程。

MFC\INCLUDE 目录中包含以下框架资源:

  • Afxres.rc:框架使用的常见资源。

  • Afxprint.rc:特定于打印的资源。

  • Afxolecl.rc:特定于 OLE 客户端应用程序的资源。

  • Afxolev.rc:特定于完整 OLE 服务器应用程序的资源。

使用剪贴画资源

使用剪贴画二进制资源

  1. 在 Visual C++ 中打开应用程序的资源文件。

  2. 打开 Common.rc。 此文件包含所有二进制剪贴画资源。 这可能需要一些时间,因为 Common.rc 文件已编译。

  3. 按住 Ctrl,同时将要使用的资源从 Common.rc 拖动到应用程序的资源文件。

若要使用其他剪贴画资源,请执行以下步骤。 唯一的区别是打开相应的 .rc 文件,而不是 Common.rc。

注释

请注意不要无意中将资源从 Common.rc 永久移出。 如果在拖动资源时按住 Ctrl 键,将创建副本。 如果在拖动时不按住 Ctrl,则会移动资源。 如果担心你可能意外更改了 Common.rc 文件,请在系统询问是否将更改保存到 Common.rc 时单击“否”。

注释

.rc 资源文件包含一个特殊的 TEXTINCLUDE 资源,它将阻止你意外地在标准 .rc 文件的基础上进行保存。

自定义标准框架资源

标准框架资源通常包含在应用程序中,方法是在应用程序的资源文件中使用 #include 命令。 AppWizard 将生成资源文件。 此文件包括适当的标准框架资源,具体取决于所选的 AppWizard 选项。 可以通过更改编译时指令来查看、添加或删除包含的资源。 为此,请打开 “资源 ”菜单,然后选择“ 设置包括”。 查看“编译时指令”编辑项。 例如:

#include "afxres.rc"
#include "afxprint.rc"

自定义标准框架资源的最常见情况是添加或删除用于打印、OLE 客户端和 OLE Server 支持的附加内容。

在某些情况下,你可能希望自定义特定应用程序的标准框架资源的内容,而不仅仅是添加和删除整个文件。 以下步骤演示如何限制包含的资源:

自定义标准资源文件的内容
  1. 在 Visual C++中打开资源文件。

  2. 使用“资源”->“设置包含文件”命令,为要自定义的标准 .rc 文件删除 #include。 例如,若要自定义打印预览工具栏,请删除该 #include "afxprint.rc" 行。

  3. 在 MFC\INCLUDE 中打开相应的标准资源文件。 按照本主题前面的示例,相应的文件为 MFC\Include\Aafxprint.rc

  4. 将所有资源从标准 .rc 文件复制到应用程序资源文件。

  5. 修改应用程序资源文件中标准资源的副本。

注释

请勿直接在标准 .rc 文件中修改资源。 这样做将修改每个应用程序中可用的资源,而不仅仅是当前正在处理的资源。

另请参阅

按编号列出的技术说明
按类别列出的技术说明