当用户的“区域和语言”格式设置设置为英语以外的其他设置时,我无法正确显示Unicode字符串。
下面的代码片段从文本文件(保存为Unicode)中提取Unicode字符串,并在格式设置(区域和语言)设置为英语时正确显示它们。如果我将其更改为日语(我使用DrawText渲染文本的实际语言),我的字符串显示不正确。
可以覆盖此设置吗?也许存在更好的方法?
以下是我的字符串在我的应用程序中的显示方式的屏幕截图:
Dim lf As LOGFONT
Dim hFont As Long
Dim Result As Long
lf.lfHeight = 13
lf.lfFaceName = "Arial"
lf.lfCharSet = 1
hFont = CreateFontIndirect(lf)
Call SelectObject(lHDC, hFont)
SetTextColor lHDC, RGB(88, 88, 88)
X = StrPtr(StrConv(cap, vbFromUnicode))
DrawText lHDC, X, -1, tR, DT_CENTER
Call DeleteObject(hFont)