在用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则有些字显示不出来?

解决方案 »

  1.   

    lenb(strconv(字符串,vbfromunicode))试试~~~
      

  2.   

    tmp()=strconv(title,vbfromunicode))
    lenght=(ubound(tmp())-lbound(tmp()))+1
    TextOut   hMem,   20,   20,   title,   lenght
      

  3.   

    LenB?什么操作系统啊?
    我用的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
      

  4.   

    LenB是系统内的自带函数,你不知道?你用对象浏览器一搜索就知道了!
      

  5.   

    从大王派我去巡山学到了lstrlen,谢谢