EM_GETLINE
An application sends an EM_GETLINE message to copy a line of text from an edit control and place it in a specified buffer.
EM_GETLINE
wParam = (WPARAM) line; // line number to retrieve
lParam = (LPARAM) (LPCSTR) lpch; // address of buffer for line
Parameters
line
Value of wParam. Specifies the zero-based index of the line to retrieve from a multiline edit control. A value of zero specifies the topmost line. This parameter is ignored by a single-line edit control.
lpch
Value of lParam. Pointer to the buffer that receives a copy of the line. The first word of the buffer specifies the maximum number of characters that can be copied to the buffer.
Return Values
The return value is the number of characters copied. The return value is zero if the line number specified by the line parameter is greater than the number of lines in the edit control.
Remarks
The copied line does not contain a terminating null character.
QuickInfo
Windows NT: Requires version 3.1 or later.
Windows: Requires Windows 95 or later.
Windows CE: Requires version 1.0 or later.
Header: Declared in winuser.h.
Private Declare Sub RtlMoveMemory Lib "kernel32.dll" (Destination As Any, Source As Any, ByRef length As Long)
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
Const EM_GETLINE = &HC4
Private Sub Command1_Click()
Dim s As String, length As Integer
length = 80
s = String(length, Chr(0))
RtlMoveMemory ByVal s, length, 2
SendMessage Text1.hwnd, EM_GETLINE, 2, ByVal s
s = Left(s, InStr(s, Chr(0)) - 1)
End Sub
或者一行行读回车。读到相应的行数时再把它读出来