随着Internet的发展,软件的国际化不可避免。一种软件可能被很多国家的人使用,如给您的软件加上多种语言的菜单,不但给使用者带来很多方便,也为您的软件的推广带来很多便利。比如给您开发的中文软件,加上一个英语或日语菜单,对母语为英语和日语的朋友将会带来很多便利。VC中实现多语菜单非常容易,下面以英汉对照菜单为例说明多语菜单实现的方法。
---- 一、建立工程项目文件
---- 采用VC中应用程序向导(AppWizard)建立一个工程项目:Menu。在可选者项中,选者单文档,语言为汉语,其余选者默认项。此时编译运行得到一个具有中文菜单的应用程序。下面将加入英文菜单到应用程序中。
---- 二、修改建立菜单资源
---- 在资源编辑器中打开菜单资源编辑器编辑IDR_MAINFRAME菜单资源,加入改变菜单的开关命令项。在查看项下加入菜单:
---- ID: ID_MENU_CHANGE Caption 英语(&E)
---- 关闭资源编辑器。用Windows的写字板打开项目下的资源文件Menu.rc找到如下内容:
IDR_MAINFRAME MENU PRELOAD DISCARDABLE
BEGIN
POPUP "文件(&F)"
BEGIN
MENUITEM "新建(&N)Ctrl+N", ID_FILE_NEW
MENUITEM "打开(&O)...Ctrl+O", ID_FILE_OPEN
MENUITEM "保存(&S)Ctrl+S", ID_FILE_SAVE
MENUITEM "另存为(&A)...", ID_FILE_SAVE_AS
MENUITEM SEPARATOR
MENUITEM "打印(&P)...Ctrl+P", ID_FILE_PRINT
MENUITEM "打印预览(&V)", ID_FILE_PRINT_PREVIEW
MENUITEM "打印设置(&R)...", ID_FILE_PRINT_SETUP
MENUITEM SEPARATOR
MENUITEM "最近文件", ID_FILE_MRU_FILE1, GRAYED
MENUITEM SEPARATOR
MENUITEM "退出(&X)", ID_APP_EXIT
END
POPUP "编辑(&E)"
BEGIN
MENUITEM "撤消(&U)Ctrl+Z", ID_EDIT_UNDO
MENUITEM SEPARATOR
MENUITEM "剪切(&T)Ctrl+X", ID_EDIT_CUT
MENUITEM "复制(&C)Ctrl+C", ID_EDIT_COPY
MENUITEM "粘贴(&P)Ctrl+V", ID_EDIT_PASTE
END
POPUP "查看(&V)"
BEGIN
MENUITEM "工具栏(&T)", ID_VIEW_TOOLBAR
MENUITEM "状态栏(&S)", ID_VIEW_STATUS_BAR
MENUITEM "英语", ID_MENU_CHANGE
END
POPUP "帮助(&H)"
BEGIN
MENUITEM "关于 Menu(&A)...", ID_APP_ABOUT
END
END
---- 将上述内容复制到剪贴板中,然后拷贝一份到上述内容的下面,并作部分修改。将IDR_MAINFRAME改为IDR_MAINFRAME_EN,其他汉语译成英语,并按英语菜单的习惯修改。改后的菜单资源如下:
IDR_MAINFRAME_EN MENU PRELOAD DISCARDABLE
BEGIN
POPUP "&File"
BEGIN
MENUITEM "New(&N)Ctrl+N", ID_FILE_NEW
MENUITEM "Open(&O)...Ctrl+O", ID_FILE_OPEN
MENUITEM "Save(&S)Ctrl+S", ID_FILE_SAVE
MENUITEM "Save As(&A)...", ID_FILE_SAVE_AS
MENUITEM SEPARATOR
MENUITEM "&Print...Ctrl+P", ID_FILE_PRINT
MENUITEM "Print Pre&view", ID_FILE_PRINT_PREVIEW
MENUITEM "&Printer Reset...", ID_FILE_PRINT_SETUP
MENUITEM SEPARATOR
MENUITEM "Re¢ File", ID_FILE_MRU_FILE1, GRAYED
MENUITEM SEPARATOR
MENUITEM "E(&X)it", ID_APP_EXIT
END
POPUP "(&E)dit"
BEGIN
MENUITEM "&UndoCtrl+Z", ID_EDIT_UNDO
MENUITEM SEPARATOR
MENUITEM "Cu&TCtrl+X", ID_EDIT_CUT
MENUITEM "&CopyCtrl+C", ID_EDIT_COPY
MENUI