如何:管理资源 (C++)

复制和编辑资源

可以将资源从一个文件复制到另一个文件,而无需更改它们,或者在复制资源时更改资源的语言或条件。

可以轻松地将现有资源或可执行文件中的资源复制到当前资源文件中。 若要复制资源,可以同时打开两个包含资源的文件,然后将项从一个文件拖到另一个文件或在这两个文件之间复制和粘贴。 此方法适用于资源脚本 (.rc) 文件和资源模板 (.rct) 文件,以及可执行 (.exe) 文件。

注意

Visual C++ 包含可在你自己的应用程序中使用的示例资源文件。 有关详细信息,请参阅 CLIPART:公用资源

无法在项目中的资源文件(资源视图)和文档窗口中打开的独立 .rc 文件之间拖放、复制、剪切或粘贴。 可以在产品的早期版本中执行此操作。 仅在项目外部打开的 .rc 文件之间使用拖放方法。

复制资源

  1. 同时单独打开这两个资源文件。 (请参阅使用资源脚本文件)。 例如,打开 Source1.rc 和 Source2.rc

  2. 在第一个 .rc 文件中,可以执行以下任一操作:

    • 使用拖放方法

      1. 选择要复制的资源。 例如,在 Source1.rc 中,选择 IDD_DIALOG1

      2. 按住 Ctrl 键并将资源拖动到第二个 .rc 文件。 例如,将 IDD_DIALOG1 从 Source1.rc 拖动到 Source2.rc

        提示

        拖动资源而不按住 Ctrl 键即可移动资源,而不是复制资源。

    • 使用复制和粘贴方法

      1. 右键单击要复制的资源(例如 Source1.rc),然后选择“复制”

      2. 右键单击要将资源粘贴到其中的资源文件(例如 Source2.rc),然后选择“粘贴”

注意

为避免与现有文件中的符号名称或值发生冲突,Visual C++ 可能会在你将传输的资源的符号值或符号名称和值复制到新文件时更改它。

在资源中进行复制时,你可以更改其语言属性和/或条件属性。

  • 资源的语言指定 FindResource 使用的语言,以帮助识别你正在查找的资源。 每种不与文本相关的语言的资源可能存在差异,例如,可能仅适用于日语键盘的加速器,或仅适用于中文本地化生成的位图。

  • 资源的条件是定义的符号,后者标识了使用资源的此特定副本的条件。

资源的语言和条件显示在“工作区”窗口中资源名称之后的括号内。 在这里,名为 IDD_AboutBox 的资源使用 Finnish 作为其语言,条件为 XX33

IDD_AboutBox (Finnish - XX33)

复制的现有资源并更改其语言或条件

在 .rc 文件或资源视图窗口中,右键单击要复制的资源并选择“插入副本”。 然后设置以下项:

  • 对于“语言”列表框,选择语言。

  • 在“条件”框中,键入条件。

编辑资源

托管资源 (.resx) 文件是 XML 文件。 从“添加新项”对话框将托管资源文件添加到项目时,默认情况下会打开“托管资源编辑器”

导入和导出资源

可以导入图形资源(位图、图标、光标和工具栏)、HTML 文件和自定义资源以便在 Visual C++ 中使用。 可以从 Visual Studio C++ 项目导出相同类型的文件,以分隔可以在开发环境外部使用的文件。

注意

无法导入或导出资源类型(如加速器、对话框和字符串表),因为它们不是独立的文件类型。

将资源导入资源脚本文件

  1. 资源视图中,右键单击要添加资源的资源脚本 (.rc) 文件的节点,然后选择“导入”

  2. 找到并选择位图 (.bmp)、图标 (.ico)、光标 (.cur)、html 文件 (.htm) 或要导入的其他文件的文件名。

  3. 选择“确定”,以将资源添加到资源脚本文件。

注意

无论选择哪种资源类型,导入过程的工作方式都是相同的。 导入的资源会自动添加到该资源类型的正确节点。

导出资源以在 Visual C++ 外部使用

  1. 资源视图中,右键单击要导出的资源,然后选择“导出”。 可以接受当前文件名或键入新文件名。

  2. 导航到要用于保存文件的文件夹,然后选择“导出”

要求

Win32

另请参阅

资源文件
如何:创建资源
如何:在编译时包含资源