最重要的Menu Bar的转化。在eVC4里是没有RC2文件的,Menu Bar的定义是在RC文件中的,而在VS2005中把Menu Bar的定义放到了RC2文件中,如果不把这部分放到RC2中,VS2005会把定义中的宏变成十六进制,让人看不懂,但是功能具备。
IDR_MENU SHMENUBAR MOVEABLE PURE
BEGIN
IDR_MENU, 2,
I_IMAGENONE, IDM_DONE, TBSTATE_ENABLED, TBSTYLE_AUTOSIZE, IDS_OK, 0,
NOMENU,
I_IMAGENONE, IDM_OPTIONS, TBSTATE_ENABLED,
TBSTYLE_DROPDOWN | TBSTYLE_AUTOSIZE, IDS_HELP, 0, 1,
END
如果在VS2005中,改变资源然后保存资源。RC中的Menu Bar的定义就变成了如下的形式。
IDR_MENU RCDATA
BEGIN
0x0066, 0x0002, 0xfffe, 0x 800f , 0x0004, 0x0010, 0x0067, 0x0000, 0xffff,
0xfffe, 0x 9c 43, 0x0004, 0x0018, 0x0068, 0x0000, 0x0001
END
下面是实例:
1. 在eVC4下新建一个TestMenuBar的工程。
2.选择“A typical “Hello World!” application.
3. “hello world” 工程创建了一个工具条菜单。
4.然后打开VS2005, 点击,File | Open | Project/Solution
5.然后会显示eVC4到VS2005转化的向导。
6. 选择Solution Explorer,在Source Files上点击右键,选择Add | New Item.
7. 在Categories选择Utility,在Templates选择Text File.建立Name为TestMenuBar.rc2.
然后点击Add.
8. 选择Solution Explorer,展开Source Files,在TestMenuBar.rc点击右键.点击View Code.
9. 剪切Menu Bar在rc文件的定义。
10.再打开TestMenuBar.rc2,然后粘贴代码到TestMenuBar.rc2中。
11.选择Resource View,展开TestMenuBar.rc,点击右键,选择Resource Includes.
12. 在Compile-time directives中添加如下代码,使RC和RC2文件关联。
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE 4, 2
#pragma code_page(936)
#include "TestMenuBar.rc2" // non-Microsoft Visual C++ edited resources
#endif