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

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
/////////////////////////////////////////////////////////////////////////////

解决方案:
可以直接全部放入中文定义中,或者是分开,中文是中文,英文归英文。我是偷懒了,全部放到中文定义中。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值