区域和语言设置会导致文本显示不正确

时间:2014-05-08 23:44:08

标签: winapi unicode vb6

当用户的“区域和语言”格式设置设置为英语以外的其他设置时,我无法正确显示Unicode字符串。

下面的代码片段从文本文件(保存为Unicode)中提取Unicode字符串,并在格式设置(区域和语言)设置为英语时正确显示它们。如果我将其更改为日语(我使用DrawText渲染文本的实际语言),我的字符串显示不正确。

可以覆盖此设置吗?也许存在更好的方法?

以下是我的字符串在我的应用程序中的显示方式的屏幕截图:

enter image description here

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)

0 个答案:

没有答案