|
Option Explicit
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_GETLINE = &HC4
Private Const EM_GETSEL = &HB0
Private Const EM_LINEFROMCHAR = &HC9
Private Const EM_LINEINDEX = &HBB
Private Const EM_LINELENGTH = &HC1
Private Sub Timer1_Timer()
Dim lngHWnd As Long
Dim lngCursorPos As Long
Dim lngLineIndex As Long
Dim lngFirstCharPos As Long
Dim lngLineLength As Long
Dim abytBuffer() As Byte
Dim strRetVal As String
lngHWnd = Text1.hwnd
'Cursor-Position ermitteln:
lngCursorPos = SendMessage(lngHWnd, EM_GETSEL, _
0, ByVal 0&) \ &H10000
'Zeilen-Index ermitteln:
lngLineIndex = SendMessage(lngHWnd, EM_LINEFROMCHAR, _
lngCursorPos, ByVal 0&)
'Position des erstens Zeichens in Zeile ermitteln:
lngFirstCharPos = SendMessage(lngHWnd, EM_LINEINDEX, _
lngLineIndex, ByVal 0&)
'Anzahl Zeichen in Zeile ermitteln:
lngLineLength = SendMessage(lngHWnd, EM_LINELENGTH, _
lngFirstCharPos, ByVal 0&)
'Text in Zeile auslesen:
ReDim abytBuffer(lngLineLength)
abytBuffer(0) = lngLineLength
SendMessage lngHWnd, EM_GETLINE, lngLineIndex, abytBuffer(0)
strRetVal = Left$(StrConv(abytBuffer, vbUnicode), lngLineLength)
End Sub
|
|