主题:VC能否同时显示简体和繁体?
overfly
[专家分:3230] 发布于 2010-05-12 18:22:00
真是不好意思,因为visual c++人气太低所以发到这里来。
我想在ClistCtrl里调用SetItemText同时显示简体和繁体,但是繁体调用WideCharToMultiByte转换时得到乱码(我用的是使用多字节字符集),是不是VC不能同时显示简体和繁体?
大侠顺便看看http://bbs.pfan.cn/post-321673.html这个帖子,挂了两天没人回[em17]
回复列表 (共6个回复)
沙发
雪光风剑 [专家分:27190] 发布于 2010-05-12 19:28:00
http://topic.csdn.net/t/20041126/12/3590675.html
这里有些零散资料,可以尝试。
板凳
overfly [专家分:3230] 发布于 2010-05-13 09:15:00
楼上你给的链接里没有一个人贴出代码,所以没有一个人说得是对的。不过还是谢谢你的热心
理论上使用unicode可以解决问题,不过我选的是“使用多字节字符集”,要改成unicode的话很多地方都得修改,而且改完之后一片乱码:(
3 楼
雪光风剑 [专家分:27190] 发布于 2010-05-13 19:13:00
呵呵,你的问题太抽象了,又想得到精确到代码级别的答案。这样的问题往往问问身边的人会比较有效果,因为涉及你的整体代码和使用的环境等等问题
4 楼
eastcowboy [专家分:25370] 发布于 2010-05-14 23:21:00
很久没有做MFC了。
游戏里面的文字基本都是自己加载字体、自己显示的。如果字体文件没有这个字(例如,英文字体一般不能显示汉字),那就不能显示这个字。
我用VC2005试了一下,貌似没有问题啊。确实正确的显示了。
[code=c]void CMFC001Dlg::OnBnClickedButton1()
{
// TODO: Add your control notification handler code here
m_lst1.DeleteAllItems();
m_lst1.InsertItem(0, "AA");
m_lst1.InsertItem(1, "BB");
m_lst1.InsertItem(2, "汉字");
m_lst1.InsertItem(3, "漢字");
}[/code]
5 楼
雪光风剑 [专家分:27190] 发布于 2010-05-15 04:58:00
牛仔的话让我想到,会不会是因为MFC版本过低,某些库对字体的支持不太好
6 楼
overfly [专家分:3230] 发布于 2010-05-17 11:22:00
WCHAR wChar[] = "漢字";
char ch[5] = {0};
用WideCharToMultiByte将wChar转换为ch得到乱码,所以InsertItem(i, ch)得不到想要的结果
我来回复