我用的是BCGCBPro。把BCGCBResCHS.dll拷贝到了*\BCGCBPro\Bin中。然后按照说明做:
本地化 BCGControlBar DLL 版本:添加如下成员到你的应用程序类中:    HINSTANCE    m_hinstBCGCBRes;在应用程序的InitiInstance () 中添加 DLL 资源初始化:    m_hinstBCGCBRes = LoadLibrary (_T("BCGCBResCHN.dll"));   
    BCGCBProSetResourceHandle (m_hinstBCGCBRes);
     
Unload resource DLL in ExitInstance:
    FreeLibrary (m_hinstBCGCBRes);
但是依然不能正常显示菜单中的中文。同时弹出菜单的check图标和workspace的自动隐藏图标和以前不同了,注释以上代码以后恢复。跟踪了一下LoadLibrary成功返回,BCGCBProSetResourceHandle函数是void的。
请用过的高手来帮帮忙。
还有这个东西稳定吗?我看到官方网站论坛上有不少报告的bug。

解决方案 »

  1.   

    把你的程序在注册表的内容删去,再运行程序,菜单显示中文应该就没问题了。
    BCGControlBar是有不少问题。比如我在MDI中插入一个OLE对象,然后将子窗口最大化,现场激活对象两次后,就会出错。但不将子窗口最大化就没有问题。
      

  2.   

    本地化从 4.7 版开始 BCGControlBar 有了一个新的本地化机制。它提供了更为简单和健壮的方式来创建一个多语言的应用程序。BCGControlBar 语言包的安装:下载一个BCGControlBar 语言包,解压缩到你的 BCGControlBar 路径中(新的 L.* 子目录将会出现, * - 表示语言前缀名, FRA - 法文, ITA - 意大利文, ...). 指定语言的源 DLLs 文件将被复制到你的 BCGControlBar\Bin 目录中:  BCGCBResCHS.dll   中国   BCGCBResITA.dll   意大利  
      BCGCBResCSY.dll      捷克    BCGCBResJPN.dll    日本  
     BCGCBResDEN.dll    丹麦   BCGCBResKOR.dll    韩国  
      BCGCBResDEU.dll     德国    BCGCBResPTG.dll    葡萄牙  
      BCGCBResELL.dll     希腊    BCGCBResRUS.dll    俄罗斯  
      BCGCBResESP.dll     西班牙    BCGCBResSKY.dll    斯洛伐克  
      BCGCBResFRA.dll     法国    BCGCBResSLV.dll   斯洛法尼亚 
      BCGCBResHUN.dll     匈牙利        本地化 BCGControlBar DLL 版本:添加如下成员到你的应用程序类中:    HINSTANCE    m_hinstBCGCBRes;
    在应用程序的InitiInstance () 中添加 DLL 资源初始化:    m_hinstBCGCBRes = LoadLibrary (_T("BCGCBRes***.dll"));    // *** - language
        BCGCBSetResourceHandle (m_hinstBCGCBRes);
         
    Unload resource DLL in ExitInstance:    FreeLibrary (m_hinstBCGCBRes);本地化静态库版本:在项目的 "资源包含" 对话框中 (View | Resource Includes) 修改#include "bcgcontrolbar.rc"
        to
    #include "L.***\bcgcontrolbar.rc" // *** language (e.g. #include "L.FRA\bcgcontrolbar.rc")
    怎样把库资源翻译成新的语言在你的 BCGControlBar 目录 中, 建立一个新的子目录名为 "L.***" ,其中 "***" 是一个语言名前缀。 
    从任何一个其他语言的子目录中拷贝如下文件:                bcgcbarres.cpp
                    bcgcbarres.dsp
                    bcgcbarres.dsw
    复制 bcgcbarres.rc (English resources) ,来源: BCGControlBar 目录 
    在 Visual C++中打开 bcgcbarres 项目 
    清除资源版本信息 
    改变 DLL 输出文件名为 "..\..\bin\BCGCBRes***.dll" (*** - 是一个语言名前缀) 
    翻译对话框、字符串和菜单资源。 
    编译链接该项目。因为 bcgcbarres.rc 指向普通的 BCGControlBar 资源 (位图、图标和光标),你将被提示创建一个 "RES" 子目录。这是 Visual Studio 资源编辑器的问题,它没有以正确的方式理解项目设置中的路径。你只要回答 yes 就可以了,然后 L.***\RES 子目录将被创建。当资源文件被编译的时候(包括 静态 和 DLL 模式),正确的 RES 路径将被取回。该语言的资源 DLL 文件将被放在 BIN 目录中(与 BCGCB<ver>.DLL 相同)。.
      

  3.   

    我的做法是亲手汉化库本身和AppWizard,它自身本地化模块还是有问题!