我正在使用UNICODE指令进行编译,因此所有CStrings都使用Unicode。如果我将“봉재”放入CString,选择带有“Arial”的字体,然后使用TextOut或TextOutW显示此文本,则会显示两个框。
如果我在文字中添加拉丁字符,例如“봉재ABC”,然后显示变为两个方框,后跟“ABC”。
但是,如果我在文本中添加某些其他CJKV字符,例如“봉재/元”,然后显示我的CString文本。
我猜测TextOut检查文本,如果找到某些字符,它会替换字体以获得最佳显示效果。如果我的理论是正确的,那么通过在字符串中添加某些东方字符,我可以强制TextOut替换Unicode字体,但如果我添加其他东方字符,TextOut不会替换正确的字体,并且显示不足。
如何让TextOut始终替换正确的字体,或以其他方式始终显示文字?
答案 0 :(得分:1)
请注意,“Arial”根本不支持CJKV,它只是拉丁字体。如果您希望在保持Arial字体外观的同时获得更广泛的Unicode支持,请使用“Arial Unicode”。否则,请使用另一种字体,首先检查它是否包含您需要渲染的所有字形。