If you duplicate a resource a few times in the resource
browser by using copy and paste, you will find that it is possible to run into
resource ID collisions when you try to rename the resources using the resource
property dialog box. That is, when you try to rename your resources, you will
find that the resource editor may try to assign your new resource name an
integer ID that already exists. This will cause a resource editor error
message.
This problem is the result of the Resource Editor not
correctly assigning new IDs to resource names when you try to give a resource a
new name. The Resource Editor actually is trying to assign the new resource
name an integer ID that is already used by another resource. This will cause
the resource ID collision.
After you have duplicated your resources and before you
start to rename them, take the following steps to ensure that your resource
names have unique integer identifiers:
If you are using Visual C++, versions 2.x, make sure that the
resource file is open by double-clicking the .rc file in the project window. In
Visual C++ versions 4.x, click the Resource tab in the Project window. In Visual C++ versions 5.0 and 6.0,
click the ResourceView tab in the Project Workspace pane.
If you are using Visual C++ 2.x, open the Symbols dialog box. To do this,click Symbols on the Resource menu. In Visual C++ versions 4.0, 4.1, 4.2, 5.0, and 6.0, click Resource Symbols on the View menu.
Click New. The New Symbol dialog box appears.
In the name edit control, type the new symbol name that you want
to use.
In the Value edit control, type the new symbol value that you
want to use. You must make sure that this value is not being used by any of the
resources that are listed in the Resource Symbols dialog box.
Close the New Symbol dialog box by clicking OK.
Close the Symbols Browser by clicking OK.
You can now rename your resources using the symbols you created
without worrying about whether the symbol has already been defined.
In Visual C++ 2.x, open the .rc file in the project window.
In Visual C++ 4.0, 4.1, or 4.2, click the Resource tab in the Project window to view the resources. In Visual C++,
versions 5.0 and 6.0, click the ResourceView tab in the Project Workspace pane.
Expand Accelerator, Icon, Menu, and Toolbar.
Select the IDR_MAINFRAME Accelerator resource.
Press CTRL+C
Press CTRL+V four times to make four copies of the Accelerator table
IDR_MAINFRAME. There are now five versions of the Accelerator table named
IDR_MAINFRAME through IDR_MAINFRAME4
Repeat steps 4 through 6 for the Icon, Menu, and Toolbar
resources. You may notice inconsistencies in the default naming of the pasted
resources. That is, you may see the default names come up as IDR_MAINFRAME,
IDR_MAINFRAME2, IDR_MAINFRAME3, IDR_MAINFRAME4 and so on (IDR_MAINFRAME1 was
skipped).
Start renaming all of the Accelerators so that you have
IDR_MAINFRAME and IDR_TEST1 through IDR_TEST4
Start renaming all of Icons in the same way the
accelerators were named in step 8. You won't be able to because you will get an
error message that says:
The resource 'IDR_XTYPE' of
this type uses the same identifier value.