如何使用TextOut正确显示韩语文本?

时间:2016-01-28 20:24:58

标签: visual-c++ unicode fonts textout

我正在使用UNICODE指令进行编译,因此所有CStrings都使用Unicode。如果我将“봉재”放入CString,选择带有“Arial”的字体,然后使用TextOut或TextOutW显示此文本,则会显示两个框。

如果我在文字中添加拉丁字符,例如“봉재ABC”,然后显示变为两个方框,后跟“ABC”。

但是,如果我在文本中添加某些其他CJKV字符,例如“봉재/元”,然后显示我的CString文本。

我猜测TextOut检查文本,如果找到某些字符,它会替换字体以获得最佳显示效果。如果我的理论是正确的,那么通过在字符串中添加某些东方字符,我可以强制TextOut替换Unicode字体,但如果我添加其他东方字符,TextOut不会替换正确的字体,并且显示不足。

如何让TextOut始终替换正确的字体,或以其他方式始终显示文字?

1 个答案:

答案 0 :(得分:1)

请注意,“Arial”根本不支持CJKV,它只是拉丁字体。如果您希望在保持Arial字体外观的同时获得更广泛的Unicode支持,请使用“Arial Unicode”。否则,请使用另一种字体,首先检查它是否包含您需要渲染的所有字形。