Private Declare Function TextOut Lib "GDI32" Alias "TextOutW" (ByVal hDC As Long, ByVal X As Long, ByVal Y As Long, ByVal lpString As String, ByVal nCount As Long) As LongPrivate Sub Command1_Click()
    TextOut Picture1.hDC, 0, 0, StrConv("东西财务", vbUnicode), 4
End Sub显示的却是 “东[][]R”
别的汉字有些又正常呢????例如把东西财务 换成 东过来,显示得出来

解决方案 »

  1.   

    最后的字符长度错啦 TextOut Picture1.hDC, 0, 0, "东西财务", len("东西财务")
      

  2.   

    不是这个原因
    str = StrConv("东西财务", vbUnicode)  'textout调用的是textoutw,所以转成unicode
    TextOut Picture1.hDC, 0, 0, str, Len(str)
    显示"东口口R口b"
      

  3.   

    StrConv " 东西财务", vbUnicode
        TextOut Picture1.hDC, 20, 20, "", 5
      

  4.   

    反正我调试过,这样能打出中文字,没有乱码,不知你那怎样TextOut Picture1.hdc, 0, 0, "东西财务", LenB("东西财务")其实是lenb,之前我写错了。
      

  5.   

    TextOut Picture1.hDC, 0, 0, "东西财务",lenB(StrConv("东西财务", vbFromUnicode))
      

  6.   

    请问cpp2017(幕白兄) ,为什么要这么写呢?倒是可以显示出来。我那样写的问题是什么??
    谢谢阿
      

  7.   

    To: lc_mtt(柠檬) 
    如果我声明
    Private Declare Function TextOut Lib "GDI32" Alias "TextOutA"..我能用你的方法打印出来
    可是我现在声明的是
    Private Declare Function TextOut Lib "GDI32" Alias "TextOutW" 结果打出来的是乱码
      

  8.   

    楼主的目的是什么?在picture上面写字?
        Picture1.CurrentX = 100
        Picture1.CurrentY = 500
        Picture1.Print "东西财务"
    看看能不能满足你的要求