在用win32 API写程序,想用 textOut输出一段文字,其中有英文,数字,中文,但输出后乱码,不知道如何解决,请高手指点?我实现字符输出的代码如下:
HFdc = CreateFont(10, 10, 0, 0, 700, False, False, False, 134, 2, 1, 0, 48, "宋体")
SelectObject hMem, HFdc
title"2007-9-10100m柱状图"
TextOut hMem, 20, 20, title, LenB(title)
其中,HFdc 为字体名柄,hMem为内存句柄。把LenB改成Len则有些字显示不出来?
HFdc = CreateFont(10, 10, 0, 0, 700, False, False, False, 134, 2, 1, 0, 48, "宋体")
SelectObject hMem, HFdc
title"2007-9-10100m柱状图"
TextOut hMem, 20, 20, title, LenB(title)
其中,HFdc 为字体名柄,hMem为内存句柄。把LenB改成Len则有些字显示不出来?
lenght=(ubound(tmp())-lbound(tmp()))+1
TextOut hMem, 20, 20, title, lenght
我用的XP,找不到这个API,倒是有lstrlen,试了一下没问题。Option ExplicitPrivate Declare Function TextOut Lib "gdi32" Alias "TextOutA" (ByVal HDC As Long, ByVal x As Long, ByVal y As Long, ByVal lpString As String, ByVal nCount As Long) As Long
Private Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As LongPrivate Sub Command1_Click()
Dim a As String
a = "123双子abdf"
TextOut Picture1.HDC, 100, 100, a, lstrlen(a)
End Sub