工作之中,这点算什么

1、在BCGBAppWizardAw.cpp里先改 

BCGCBProAppWizardAw.cpp 
  SetSupportedLanguages(_T("English   [United   States]   (APPWZENU.DLL);0x40904b0/nDeutsch   [Deutschland]   (APPWZDEU.DLL);0x40704b0/nCHS   [简体中文]   (APPWZCHS.DLL);0x080404b0"));  
  2、在Template目录下新建DlgLoc_chs.rc、Loc_chs.rc(这两个文件是把DlgLoc_enu.rc和Loc_enu.rc拷贝过来,然后把英文信息改成中文信息)  
  3、编译后向导文件自动复制到你的vc目录去了。  
   
  这种方法有一个问题,就是生成中文文档后,“帮助”—》“关于×××”会出现断言错误,如果你不需要的话可以删除帮助那个对话框,如果需要的话可以按下面方式修改:  
      注释掉×××.cpp中的   CBCGURLLinkButton   m_btnURL    
      以及   DDX_Control(pDX,IDC_COMPANY_URL,m_btnURL)

 

 

http://www.pudn.com/downloads71/sourcecode/windows/dialog/detail259547.html

 

 

BCGControlBar作为MFC界面的扩展库它能很好地创建像Office、Visual Studio、Vistual Studio.NET和Internet Explorer风格的应用程序。包括工具条和菜单,支持定制键盘、可停靠的控制栏、菜单栏以及像Office 2000/XP/2003风格的菜单。可惜它没有提供工程的中文创建向导,这对于习惯使用中文界面的BCGControlBar开发者来说显然是一种遗憾。同时,网上的已有支持中文的向导不完美,存在缺失原有部分功能。笔者结合自己的实践经验,制作了支持中文、英语语言的向导,关于向导的制作参见笔者的文章“BCGControlBar Pro 7.31支持多语言资源创建应用程序向导的制作”

说明:
1、 适用版本BCGControlBar Library (v7.3.1)Professional Edition,VC++6.0
2、 请将BCGCBProAppWizard.awx向导文件拷贝到VC安装目录:..Microsoft Visual StudioCommonMSDev98Template下即可。

欢迎使用及提出建议。

怎么不能上传附件?

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 英语[美国](APPWZENU.DLL);")),重新编译形成创建工程向导的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"
AFXDB_xxx.RTF TEMPLATE DISCARDABLE "template/afxdb_xxx.rtf"

SCMENU_xxx.BMP TEMPLATE DISCARDABLE "template/scmenu_xxx.bmp"
APPEXIT_xxx.BMP TEMPLATE DISCARDABLE "template/appexit_xxx.bmp"
HLPSBAR_xxx.BMP TEMPLATE DISCARDABLE "template/hlpsbar_xxx.bmp"
XXX为语言标识符,chs-中文、enu-英语、……。

并列出了在子目录TEMPLATE中的文件名称,子目录TEMPLATE下每一语言也有对应的一组文件。
再用文本编辑器打开BCGPAppWizardBCGCBProAppWizard.rc,在TEMPLATE节,只有英语语言对应的一组文件。而该工程对应的子目录TEMPLATE下也只有英语语言对应的一组文件。
经过以上过程,根据在(一)中制作的awx用来创建支持中文资源的程序会出错,而创建英语资源的程序一切正常,可以判断原因是与无中文资源相关的文件组有关。至此,基本找到了解决的方法。
(三)、制作BCGControlBar Pro 7.31支持多语言资源创建工程向导的方法
      使用工具:文件比较器,使用UltraCompare。
1、经比较自己用“custom AppWizad”创建定制向导工程的LOC_chs.rc、DLGLOC_chs.rc和LOC_enu.rc、DLGLOC_enu.rc,中文资源文件是英语资源文件一对一的翻译。因此,可用自己用“custom AppWizad”创建定制向导工程的LOC_chs.rc、DLGLOC_chs.rc作为BCGControlBar Pro 7.31创建工程向导TEMPLATE的中文资源文件的基础,将其复制到BCGPAppWizardTemplate目录。
2、使用UltraCompare同时打开3个文件的文本比较模式,将“custom AppWizad”创建定制向导工程的LOC_enu.rc作为第一打开文件,将BCGPAppWizardTemplate目录下的LOC_enu.rc作为第二打开文件,将BCGPAppWizardTemplate目录下的LOC_chs.rc作为第三打开文件,比较三个文件,第二文件有的而第一文件无的部分资源是BCGControlBar Pro 7.31特有的资源,将该部分特有资源插入第三个中文资源文件相应位置,至此大部分为中文的资源文件已形成,需翻译的只是BCGControlBar Pro 7.31特有部分资源,对另一资源文件作相应处理(其实对于DLGLOC_chs.rc仅是增加了几行注释而已),所需中文资源文件已形成。
3、用文本编辑器打开BCGPAppWizardBCGCBProAppWizard.rc,在TEMPLATE节增加支持中文资源的一组文件列表,即(二)中的一组文件。同时在BCGPAppWizardTemplate目录下增加该组中除两个rc资源文件外的其它文件、可采用复制BCGPAppWizardTemplate目录下对应的英语语言文件组,将_enu改为_chs。
4、重新编译,经创建程序证实功能一切正常。
从这一过程可看出,工程向导创建程序框架时,根据使用的语言在BCGCBProAppWizard.awx中查找对应的语言标识符对应的资源,如果BCGCBProAppWizard.awx中无对应的资源,就使用MFC中相应语言的标准资源。了解了查找资源的次序,再来制作支持多语言的创建工程向导就容易了。本文虽是针对BCGControlBar Pro,对其它创建工程向导增加语言支持的制作也可采用以上4个步骤实践。
至于使用“本地化”BCGControlBar Professional DLL 版本,请参看BCGControlBar Professional的帮助文章:Localization。

 

BCGControlBar作为MFC界面的扩展库它能很好地创建像Office、Visual Studio、Vistual Studio.NET和Internet Explorer风格的应用程序。包括工具条和菜单,支持定制键盘、可停靠的控制栏、菜单栏以及像Office 2000/XP/2003风格的菜单。

可惜它没有提供工程的中文创建向导。同时,网上的已有支持中文的向导支持的版本比较低,不支持最新的9.4。笔者参考了网上已有的文章“BCGControlBar Pro 7.31支持多语言资源创建应用程序向导的制作”,结合自己的实践经验,制作了9.4版的支持中文、英语语言的向导。

说明:
1、 适用版本BCGControlBar Library Professional Edition v9.4。
2、 请将BCGCBProAppWizard.awx向导文件拷贝到VC++ 6.0安装目录:../Microsoft Visual Studio/Common/MSDev98/Template/下即可。

下载地址http://magicdoom.blogbus.com/files/1170041020.rar

如果有朋友需要工程的源码,请联系我magicdoom@gmail.com

 


最近有不少朋友mail索取工程的源码,特次上传到blogjava,方便大家下载!下载地址为http://www.blogjava.net/Files/magicdoom/BCGPAppWizard.rar

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值