BCGCONTROLBAR中文菜单栏乱码情况解决方法

首先利用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就可以了。

默认情况下,上面的对话框显示的也是英文,如果要以中文显示就需要加载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中卸载资源:

posted @ 2012-05-27 21:34  renhang888  阅读(844)  评论(0编辑  收藏  举报