BcgPro的中文支持有关问题,请各高手帮忙看一下

BcgPro的中文支持问题,请各高手帮忙看一下。
我用的bcg版本是9.0的,环境vc2005。
bcgp_app_wizard生成的工程全都是英文的,一修改caption为中文就变成了乱码。参看了BCG的Doc里面的localization。可能是没有看明白文档,试了之后,仍无法汉化成中文的project,所以在这里向大家求助一下。因为是第一次使用这个gui库所以比较木讷一点,希望大家解释的时候多一点耐心,说的详细一点便于我领会。:)先谢过了!

------解决方案--------------------
bcgp_app_wizard的工程需要自己汉化,Template中的模版资源需要自己汉化

下面的方法是从网上Copy的,对应7.3.1版本,9.0的汉化方法应该与之类似
我用该方法成功做出了7.3.1版本的中英文app_wizard

//_____________________________________________________________________________
   BCGControlBar Pro 7.31支持多语言资源创建应用程序向导的制作

   潘方贵

  BCGControlBar Pro是优秀的MFC的一个扩展类库,可以用来构建类似于Microsoft Office、Microsoft Visual Studio和其他一些知名产品的高级用户界面。可是创建应用程序的向导仅提供支持英语语言的资源,不能产生中文资源菜单的应用程序。好在安装BCGControlBar Pro 7.31后有制作创建应用程序向导的工程文件,可以以此为基础制作支持中文语言、英语语言资源的创建工程向导。经过两天的摸索,已解决了制作创建工程向导中的问题,将整个制作向导的过程作一完整的叙述,以能完整的再现解决问题的过程。

  一、BCGControlBar Pro 7.31支持中文资源创建应用程序向导制作的已有资料及存在问题

  网上有BCGControlBar7.3.1中文向导制作文章,该文的方法如下:

  1、将SetSupportedLanguages(_T(English[UnitedStates](APPWZENU.DLL);

  0x40904b0/nDeutsch[Deutschland](APPWZDEU.DLL);0x40704b0 "))语句修改为SetSupportedLanguages(_T( "中文 [中国](APPWZEDU.DLL);0x80404b0 "));

  2、汉化资源文件及其它资源。在工程BCGPAppWizard的Template文件夹下,找到DlgLoc_enu.rc和Loc_enu.rc文件文件,用文本编辑器将其打开,将其中的英文字符改为相应的中文,编辑完毕后保存即可,将在其他文件(如Root.cpp等)中出现的英文文本显示的字符翻译成中文。

  3、消除库的开发者在应用向导自定义的第一页中添加了一个“无用”控件,其ID为IDC_MDI_TAB_GROUPS,与之相关的变量名为BOOL m_bMDITabGroups。工程中与IDC_MDI_TAB_GROUPS及m_bMDITabGroups相关的行注释掉(文中对OnMdiTabs()中的IDC_MDI_TAB_GROUPS更改为IDC_MDI_TAB)。

  采用该文的方法确实可以制作支持中文资源的工程创建向导,但没有资源语言的选择余地,同时,在SetSupportedLanguages中使用APPWZEDU.DLL,而非使用APPWZCHS.DLL,仅把转换标识符改为中文的0x80404b0,其实只要按该文进行第2、3步就可以了,原因是第2步已对使用的所有资源文件进行了汉化。该作者这样处理后,将失掉原有的一些功能,原因是作者认为开发者在应用向导自定义的第一页对话框中添加了一个“无用”控件,其ID为IDC_MDI_TAB_GROUPS。其实,不是多了一个“无用”控件,而正是缺失了一个与IDC_MDI_TAB_GROUPS相关联的选择框控件,向导使用与该选择框控件相关联的m_bMDITabGroups成员变量来控制MDI文档TAB标签是否分组。

  二、制作BCGControlBar Pro 7.31支持多语言资源创建工程向导的方法及解决问题的过程

  有没有制作既支持英语又支持中文资源的BCGControlBar Pro 7.31创建工程向导的可能?经历了以下过程,最终解决了问题。

  首先是在向导自定义的第一页对话框中添加一个“Check Box”的控件,选择标识符为IDC_MDI_TAB_GROUPS。否则在用向导创建工程进入向导自定义的第一页对话框时将会弹出“试图执行系统不支持的操作”错误对话框,创建工程向导不能向下进行。

  (一)、仅在语言支持中增加中文语言支持,而不汉化BCGPAppWizard的Template文件夹下下的任何资源文件。

  1、安装BCGControlBarPro后的目录下有向导工程BCGPAppWizard,用VC打开BCGCBProAppWizard.dsw,浏览BCGBAppWizardaw.cpp文件,在InitCustomAppWiz()函数找到SetSupportedLanguages(_T( "English [United States] (APPWZENU.DLL);0x40904b0 ")),把该语句修改为 SetSupportedLanguages(_T( "中文[中国] (APPWZCHS.DLL);0x80404b0\n英语[美国] (APPWZENU.DLL);0x40904b0 "));,重新编译形成创建工程向导的awx文件。

  2、用该创建工程向导创建一新工程,选用中文语言。编译后执行,debug版会弹出一错误对话框,选择“忽略”,程序可继续执行,程序菜单已为中文,但为MFC标准资源菜单,无BCGControlBar Pro 7.31扩充菜单,同时,按“关于”菜单会弹出“试图执行系统不支持的操作”错误对话框。对于Release版唯一不同是开始不会出现错误对话框,其余与debug相同。

  3、用该创建工程向导再创建一新工程,选用英文语言。编译后执行,一切正常,具有英文菜单,并有BCGControlBar Pro 7.31扩充菜单。

  (二)、自己用“custom AppWizad”创建一定制向导工程。在选择支持语言时,选择所有语言。

  用文本编辑器打开该工程目录下的资源文件(.rc,),在TEMPLATE节,对应每一语言均有以下文件组:

  LOC_xxx.RC TEMPLATE DISCARDABLE "template\\loc_xxx.rc "

  DLGLOC_xxx.RC TEMPLATE DISCARDABLE "template\\dlgloc_xxx.rc "

  DOC_xxx.ICO TEMPLATE DISCARDABLE "template\\doc_xxx.ico "

  

  ROOT_xxx.CNT TEMPLATE DISCARDABLE "template\\root_xxx.cnt "

  ROOT_xxx.HPJ TEMPLATE DISCARDABLE "template\\root_xxx.hpj "

  AFXDLG_xxx.RTF TEMPLATE DISCARDABLE "template\\afxdlg_xxx.rtf "

  AFXCORE_xxx.RTF TEMPLATE DISCARDABLE "template\\afxcore_xxx.rtf "

  AFXPRINT_xxx.RTF TEMPLATE DISCARDABLE "template\\afxprint_xxx.rtf "

  AFXOLECL_xxx.RTF TEMPLATE DISCARDABLE "template\\afxolecl_xxx.rtf "

  AFXOLESV_xxx.RTF TEMPLATE DISCARDABLE "template\\afxolesv_xxx.rtf "