Public Function LineText(txtRichBox As RichTextBox, lineNumber As Long) _
As String
Dim nRet As Long
nRet = SendMessage(txtRichBox.hWnd, EM_LINEINDEX, lineNumber - 1, _
ByVal 0)
LineText = Space(SendMessage(txtRichBox.hWnd, EM_LINELENGTH, _
nRet, ByVal 0) + 2)
' Mid(LineText, 1, 1) = Chr(LenB(StrConv(LineText, vbFromUnicode)) Mod 256)
' Mid(LineText, 2, 1) = Chr(LenB(StrConv(LineText, vbFromUnicode)) \ 256)
Mid(LineText, 1, 1) = Chr(Len(LineText) Mod 256)
Mid(LineText, 2, 1) = Chr(Len(LineText) \ 256) nRet = SendMessage(txtRichBox.hWnd, EM_GETLINE, lineNumber - 1, _
ByVal LineText) Debug.Print Len(StrConv(LineText, vbFromUnicode)), nRet
LineText = Mid(LineText, 1, nRet)
End Function
我用了这段代码可以取到英文内容的某一行,但是有中文时出乱码,如果使用textBox则没有这个现象!!
有没有更好的方法,可以推荐
As String
Dim nRet As Long
nRet = SendMessage(txtRichBox.hWnd, EM_LINEINDEX, lineNumber - 1, _
ByVal 0)
LineText = Space(SendMessage(txtRichBox.hWnd, EM_LINELENGTH, _
nRet, ByVal 0) + 2)
' Mid(LineText, 1, 1) = Chr(LenB(StrConv(LineText, vbFromUnicode)) Mod 256)
' Mid(LineText, 2, 1) = Chr(LenB(StrConv(LineText, vbFromUnicode)) \ 256)
Mid(LineText, 1, 1) = Chr(Len(LineText) Mod 256)
Mid(LineText, 2, 1) = Chr(Len(LineText) \ 256) nRet = SendMessage(txtRichBox.hWnd, EM_GETLINE, lineNumber - 1, _
ByVal LineText) Debug.Print Len(StrConv(LineText, vbFromUnicode)), nRet
LineText = Mid(LineText, 1, nRet)
End Function
我用了这段代码可以取到英文内容的某一行,但是有中文时出乱码,如果使用textBox则没有这个现象!!
有没有更好的方法,可以推荐
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货