首页
社区
课程
招聘
如何让对话框中的控件支持不同语言的操作系统?
发表于: 2010-3-16 21:43 3285

如何让对话框中的控件支持不同语言的操作系统?

2010-3-16 21:43
3285
我用汇编+Win32API写了一个文本编辑器。以对话框为主体。
编辑器中对GBK字符串的处理方法是使用MultiByteToWideChar转换成Unicode字符串之后,再使用SendDlgItemMessageW将其添加到ListBox或者Edit Control中。
在中文系统下文本显示正常。
但是我现在使用了日文语言包外加设置成日区,现在再运行我的程序的话,日文可以在编辑器中正常显示,但是中文的一些字会变成问号,包括TextOutW也存在这种问题。比如“打?(开)文件”“快捷??(键说)明”。
调试发现MultiByteToWideChar函数运行正常。问题发生在SendDlgItemMessageW中。但是调试没能发现问题……特来请教。

还有就是在另一种状况下(使用Applocale模拟日区)MultiByteToWideChar函数执行错误,也就是说本来正常的GBK字符串转换成Unicode后是一串乱码。而函数参数和上面完全相同,这又是什么原因呢?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (4)
雪    币: 55
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
晕,没人答啊,自己顶一个……
目前基本确定是因为windows内部把我传递进去的Unicode字符串又通过932代码页转换回了ANSI字符串,而932代码页中没有的中文字符就变成了?,但是目前依然没想出解决办法……
2010-3-17 08:44
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
设置字体,用自已的字体文件
2010-3-17 09:20
0
雪    币: 285
活跃值: (16)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
4
输入法也要用自已的。没必要转成UNICODE
2010-3-17 09:22
0
雪    币: 160
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
虽然不怎么懂汇编,但Unicode要好些吧!必竟像中文这些就只有用它了!
2010-3-17 09:51
0
游客
登录 | 注册 方可回帖
返回
//