MFC为何无法显示韩语,法语等都能正常显示

凌乱哥 2014-08-20 12:26:19
代码如下:

CPaintDC dc(this);
dc.SetBkMode(TRANSPARENT);
CFont* pFont = new CFont;
pFont->CreateFont(32,0,0,0,FW_BOLD,FALSE,FALSE,FALSE,DEFAULT_CHARSET,OUT_RASTER_PRECIS,CLIP_DEFAULT_PRECIS,VARIABLE_PITCH|PROOF_QUALITY,FF_DONTCARE,_T("Arial"));
dc.SelectObject(pFont);

string s = "吝瘤\xC1\xDF\xC1\xF6"; // 韩语
wchar_t ws[100] = {0};
MultiByteToWideChar(949, 0, s.c_str(), s.length(), ws, 100); // 韩语
dc.TextOut(5,5,ws);

s = "\x46\x72\x61\x6E\xE7\x61\x69\x73";//法语
memset(ws,0,100);
MultiByteToWideChar(1252, 0, s.c_str(), s.length(), ws, 100); // 法语
dc.TextOut(5,40,ws);

直接上图看效果
韩语转换前:

韩语转换后:

法语转换前:

法语转换后:


程序运行结果:

大家都看到了,程序调试过程中的值都是对的,为何显示的时候就是不行呢,而法语、西班牙语、葡萄牙语都能正常显示的
...全文
295 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
快乐鹦鹉 2014-08-20
  • 打赏
  • 举报
回复
可能和你的字体有关吧。调试的时候查看到的信息与你程序中的字体无关。 不如你换换其他字体试试,最好是韩语字体
oyljerry 2014-08-20
  • 打赏
  • 举报
回复
需要有对应字体支持,如果是WIN7以后,它系统会自带一些字体,就可以显示
凌乱哥 2014-08-20
  • 打赏
  • 举报
回复
引用 1 楼 happyparrot 的回复:
可能和你的字体有关吧。调试的时候查看到的信息与你程序中的字体无关。 不如你换换其他字体试试,最好是韩语字体
版主英明,我下载了韩文字体后修改程序就OK了,那我就只能指定一种字体了,反正会用韩语的用户,他电脑上肯定有韩语字体
引用 2 楼 aow11 的回复:
会不会跟unicode有关呢?
应该是字体问题
aow11 2014-08-20
  • 打赏
  • 举报
回复
会不会跟unicode有关呢?

15,979

社区成员

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

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