资源描述:
《用VC++打造有多语言菜单的应用程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、用VC++打造有多语言菜单的应用程序随着计算机技术的快速发展,软件的交流越来越频繁,软件的国际化已成为一个软件开发人员不可回避的一个问题。所谓软件的国际化,就是让软件界面支持多种语言,从而可以被很多国家的人使用。为了使应用程序支持多种语言,一个很好的办法就是使用动态链接库,将不同的语言资源放入不同的库中,根据需要程序加载不同的动态库,从而实现程序的国际化。但是这种方法实现起来不很方便,对软件开发人员要求较高,尤其是对于初学者,难度较大。为了解决这个问题,以实现多语言菜单为例,笔者介绍在VC编程中一种简单实现方法,从而实现软件的国际化支持
2、。下图一给出了中英文菜单的应用程序界面:(a)中文菜单(b)英文菜单 图一、多语言菜单支持的应用程序 一、实现方法 假如VisualC++6.0中生成的应用程序默认的菜单为中文,我们为了使应用程序的菜单支持英文,首先需要给应用程序添加英文菜单,读者朋友首先想到的可能是利用VisualC++提供的资源编辑器,这种方法当然可行,但是还有一种更方便更快捷的方法。首先用Windows的小程序"记事本"以文本的形式打开项目中的资源文件(.rc文件),找到项目中的菜单文本,内容如下:IDR_MAINFRAMEMENUPRELOADDISCA
3、RDABLEBEGINPOPUP"文件(&F)"BEGINMENUITEM"新建(&N)tCtrl+N",ID_FILE_NEWMENUITEM"打开(&O)...tCtrl+O",ID_FILE_OPENMENUITEM"保存(&S)tCtrl+S",ID_FILE_SAVEMENUITEM"另存为(&A)...",ID_FILE_SAVE_ASMENUITEMSEPARATORMENUITEM"打印(&P)...tCtrl+P",ID_FILE_PRINTMENUITEM"打印预览(&V)",ID_FILE_PRINT_PR
4、EVIEWMENUITEM"打印设置(&R)...",ID_FILE_PRINT_SETUPMENUITEMSEPARATORMENUITEM"最近文件",ID_FILE_MRU_FILE1,GRAYEDMENUITEMSEPARATORMENUITEM"退出(&X)",ID_APP_EXITENDPOPUP"编辑(&E)"BEGINMENUITEM"撤消(&U)tCtrl+Z",ID_EDIT_UNDOMENUITEMSEPARATORMENUITEM"剪切(&T)tCtrl+X",ID_EDIT_CUTMENUITEM"复制(&
5、C)tCtrl+C",ID_EDIT_COPYMENUITEM"粘贴(&P)tCtrl+V",ID_EDIT_PASTEENDPOPUP"查看(&V)"BEGINMENUITEM"工具栏(&T)",ID_VIEW_TOOLBARMENUITEM"状态栏(&S)",ID_VIEW_STATUS_BARENDPOPUP"帮助(&H)"BEGINMENUITEM"关于MutiLanguageMenu(&A)...",ID_APP_ABOUTENDEND 将上述内容复制一份,拷贝到该资源文件的后面,并将上面内容的第一行修改为"IDR_En
6、glish_MAINFRAMEMENUPRELOADDISCARDABLE",这样作也就是为英文菜单起了一个叫"IDR_MAINFRAME_ENGLISH"的名字。最后将各个菜单项目的中文说明修改为英文说明,内容如下:"IDR_Englishi_MAINFRAMEMENUPRELOADDISCARDABLE"BEGINPOPUP"File(&F)"BEGINMENUITEM"New(&N)tCtrl+N",ID_FILE_NEWMENUITEM"Open(&O)...tCtrl+O",ID_FILE_OPENMENUITEM"Sav
7、e(&S)tCtrl+S",ID_FILE_SAVEMENUITEM"SaveAs(&A)...",ID_FILE_SAVE_ASMENUITEMSEPARATORMENUITEM"Print(&P)...tCtrl+P",ID_FILE_PRINTMENUITEM"PrintView(&V)",ID_FILE_PRINT_PREVIEWMENUITEM"PrintSetup(&R)...",ID_FILE_PRINT_SETUPMENUITEMSEPARATORMENUITEM"RecentFiles",ID_FILE_MRU_F
8、ILE1,GRAYEDMENUITEMSEPARATORMENUITEM"Exit(&X)",ID_APP_EXITENDPOPUP"Edit(&E)"BEGINMENUITEM"Undo(&U)tCtr