BCGControlBar支持中文的问题

BCGControlBar是一个很好用的GUI库,我使用的版本是V12.0,VC我使用的是VC6.0,在利用其向导生成一个多文档视图的项目后,发现菜单里面的中文显示乱码,解决办法:

首先利用MFC生成一个新的工程,对照MFC工程的.rc文件更改BCG工程的.rc文件,具体更改以下项目:
1、#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)改成#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
2、#pragma code_page(1252)改成#pragma code_page(936)
3、LANGUAGE 9 1改成LANGUAGE 4, 2
文件中所有的这三处地方都要这样改改
还要注意打开资源文件要用文本方式打开,不要用自动方式
改好后重新编译
这还不够,还要在程序运行时选择菜单“View|Toolbars|Customize”,然后在对话框中选择Menu标签(下图),然后点击Reset就可以了。

BCGControlBar支持中文的问题_第1张图片

默认情况下,上面的对话框显示的也是英文,如果要以中文显示就需要加载BCG的中文资源DLL。

     在程序中加载中文资源DLL,需要一下三步:

1、在你的应用程序类(CXXXApp类)中添加如下变量:

          HINSTANCE    m_hinstBCGCBRes;

2、在你的应用程序类的初始化函数InitInstance () 中加载资源:

        m_hinstBCGCBRes = LoadLibrary (_T("BCGCBProRes***.dll"));    // *** -表示资源缩写,中文是CHS,中文资源DLL为BCGCBProResCHS.dll
       BCGCBProSetResourceHandle (m_hinstBCGCBRes);

3、在函数ExitInstance中卸载资源:

   FreeLibrary (m_hinstBCGCBRes);

如果没有资源DLL,可以在BCGControlBar的安装目录下,找到"L.***"目录,"***"是预研名字的前缀,中文是CHS,打开资源项目编译生成既可。

你可能感兴趣的:(mfc,扩展,界面,库)