Как получить содержание указанной строки из текстового окна

Поставьте на форму кнопку и текстовое окно, укажите у текстового окна свойство MultiLine=True. Скопируйте следующий код в программу. Запустите программу и введите несколько строк текста.

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 Const EM_LINEINDEX = &HBB
Private Const EM_LINELENGTH = &HC1
Private Const EM_GETLINE = &HC4

Private Type LineType
Start As Long
Length As Long
Text As String
End Type

' Данная функция возвращает начало и конец строки а также ее текст
Private Function GetLine(hWnd As Long, Line As Long) As LineType
Dim sBuf As String, nLen As Long, nIndex As Long
nIndex = SendMessage(hWnd, EM_LINEINDEX, Line - 1, ByVal 0&)
If nIndex < 0 Or Line <= 0 Then Exit Function
nLen = SendMessage(hWnd, EM_LINELENGTH, nIndex, ByVal 0&)
If nLen = 0 Then Exit Function
sBuf = Space(nLen + 1)
Mid$(sBuf, 1, 1) = Chr$(nLen And &HFF)
Mid$(sBuf, 2, 1) = Chr$(nLen \ 256)
SendMessage hWnd, EM_GETLINE, Line - 1, ByVal sBuf
GetLine.Start = nIndex
GetLine.Length = nLen
GetLine.Text = Left$(sBuf, nLen)
End Function

Private Sub Command1_Click()
Dim Line As LineType
' Выведем содержание второй строки текста
Line = GetLine(Text1.hWnd, 2)
MsgBox Line.Text
End Sub
Hosted by uCoz