您的位置:首页 > 其它

WTL中文菜单显示乱码解决方法

2017-06-29 15:59 483 查看
WTL中文菜单显示乱码解决方法

问题描述:使用WTL向导创建程序,将菜单项改成中文就显示两个问号乱码:??

从别的地方复制过来的资源也会出问题,网上查了资料,参考:

http://blog.csdn.net/jimmyzj123456/article/details/8533261

解决方法:在Solution Explorer中展开Resource Files,找到项目名称.rc文件,右键单击选择View Code,选择Yes,将代码中

pragma code_page(1252)

修改为

pragma code_page(936)

我这不成功。后来又看到上面的一行:

发现有 English

对比了其他正确的,复制过来

LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED

解决问题。

最终结果为:

/////////////////////////////////////////////////////////////////////////////
// 中文(简体,中国) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED

#ifdef APSTUDIO_INVOKED
/////////////////////////////////////////////////////////////////////////////


不需要写:#pragma code_page(936)

这样以后添加的中文就不是乱码了,之前的中文还是乱码。要逐个修改,或者是之前先复制出来,修改了配置,再粘贴进去。

使用过程中又出现了其他问题,其他地方复制过来的部分菜单还是乱码,我就仔细比对了几个 *.rc文件。发现,在乱码的rc文件中出现了两段定义,1段是中文的定义,一段是英文的定义,如果是在英文定义的范围内,这就造成了中文乱码。

*.rc基本结构如下:

// Microsoft Visual C++ generated resource script.
//
#include "resource.h"

#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Generated from the TEXTINCLUDE 2 resource.
//
#include "atlres.h"

/////////////////////////////////////////////////////////////////////////////
#undef APSTUDIO_READONLY_SYMBOLS

/////////////////////////////////////////////////////////////////////////////
// 中文(简体,中国) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
#pragma code_page(936)

…………………………

#endif    // 中文(简体,中国) resources
/////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////////////////////////////////////////////
// 英语(美国) resources

#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)

……………………………………

#endif    // 英语(美国) resources
/////////////////////////////////////////////////////////////////////////////


解决方案:

可以直接全部放入中文定义中,或者是分开,中文是中文,英文归英文。我是偷懒了,全部放到中文定义中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  wtl-menu