假设来源文本框为text1,目的文本框依次为text2,text3,text4。
用到API函数。下面给出完整代码。已经测试成功。
Private Const EM_GETLINE = &HC4
Private Const EM_LINELENGTH = &HC1
Private Const EM_LINEINDEX = &HBB
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Sub RtlMoveMemory Lib "KERNEL32" (lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long)
Private Sub TB_GetLine(ByVal hWnd As Long, ByVal whichLine As Long, Line As String)
Dim length As Long
Dim bArr() As Byte
Dim bArr2() As Byte
Dim lc As Long
lc = SendMessage(hWnd, EM_LINEINDEX, whichLine, ByVal 0&)
length = SendMessage(hWnd, EM_LINELENGTH, lc, ByVal 0&)
If length > 0 Then
ReDim bArr(length + 1) As Byte, bArr2(length - 1) As Byte
Call RtlMoveMemory(bArr(0), length, 2)
Call SendMessage(hWnd, EM_GETLINE, whichLine, bArr(0))
Call RtlMoveMemory(bArr2(0), bArr(0), length)
Line = StrConv(bArr2, vbUnicode)
Else
Line = ""
End If
End Sub
Private Sub Form_Load()
Dim S As String
Call TB_GetLine(Text1.hWnd, 0, S)
Text2.Text = S
Call TB_GetLine(Text1.hWnd, 1, S)
Text3.Text = S
Call TB_GetLine(Text1.hWnd, 2, S)
Text4.Text = S
End Sub
温馨提示:答案为网友推荐,仅供参考