高手近来,有个小问题要解决,有关unicode的

jzfcf 2006-10-08 05:46:05
目标:用unicode实现软件界面多语言化,用SetDlgItemText设置对话框各控件上的文字,文字是从unicode文本中读出来的。
环境:英文系统+VC60,unicode方式编译。
问题:显示出的中文,韩文等出现乱码,但是用MessageBox显示控件文字正常。
...全文
298 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
jzfcf 2006-10-10
  • 打赏
  • 举报
回复
是不是跟字体也有关系,还要设置中文字体?
jzfcf 2006-10-10
  • 打赏
  • 举报
回复
我这是unicode程序,对话框要支持很多种语言,不仅仅是中文,还有日文,韩文等等,那就要设置对话框同时支持中文,韩文,日文,不知道怎么办了?
jzfcf 2006-10-10
  • 打赏
  • 举报
回复
问题已解决,是字体的问题,改成Arial就可以了,下面结帖给分。谢谢大家!
jzfcf 2006-10-09
  • 打赏
  • 举报
回复
在网上看到的“在unicode程序里SetWindowText无一例外地得到乱码”,是不是真的?
jzfcf 2006-10-09
  • 打赏
  • 举报
回复
那我要显示韩文字体还必须把dialog属性变成韩文?我是用UNICODE方式编译的,应该不需要吧。
jzfcf 2006-10-09
  • 打赏
  • 举报
回复
自己顶一下
jixingzhong 2006-10-09
  • 打赏
  • 举报
回复
在你的 对话框 属性中,
右击后选择属性,
在语言项, 选择 中文 (或者其他),
默认是英文的, 显示中文乱码 ...
jzfcf 2006-10-09
  • 打赏
  • 举报
回复
头两个字节是0xFF,0xFE,而且读出的内容用MessageBox显示正确的,但用SetWindowText或SetDlgItemText显示在按钮上就有乱码了。不知为什么?
三条猫 2006-10-09
  • 打赏
  • 举报
回复
你在读取文件的时候,查看文件的头两个字节,是否为0xFF,0xFE.

如果是就为unicode文件,不是为ansi文件.

unicode文件每次按双字节读取,在UNICODE环境下,读取到LPTSTR是正确的.

ansi文件每次按单字节读取,在UNICODE环境下,需要读取到char或BYTE缓冲区,然后通过
MultiByteToWideChar(...);
把单字节缓冲区的内容转换到双字节缓冲区,才能在控件内正常的显示出来.
jzfcf 2006-10-09
  • 打赏
  • 举报
回复
五颗星的高手啊,太给面子了。是这样的:
文件是用EmEditor编辑,用unicode格式保存,程序用ReadFile()读出到内存LPTSTR pBuf。
jixingzhong 2006-10-09
  • 打赏
  • 举报
回复
在网上看到的“在unicode程序里SetWindowText无一例外地得到乱码”,是不是真的?
=====================================
中文是可以的,
已经测试过了 ...
可以动态的在 number==》“数值” 之间变换, 没有乱码,
操作就是设置对话框支持中文 ....
DentistryDoctor 2006-10-08
  • 打赏
  • 举报
回复
文字是从unicode文本中读出来的?
怎么读的?

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧