method Edit.ClientToCursor (X as OLE_XPOS_PIXELS, Y as OLE_YPOS_PIXELS, XCursor as Long, YCursor as Long)
Converts client coordinates to cursor coordinates.

TypeDescription
X as OLE_XPOS_PIXELS A single expression that specifies the x client coordinate. The x value is in pixels. 
Y as OLE_YPOS_PIXELS A single expression that specifies the y client coordinate. The y value is in pixels.
XCursor as Long A long expression that indicates the x position of the cursor. The value is in cursor coordinate.
YCursor as Long A long expression that indicates the y position of the cursor. The value is in cursor coordinate.

Use the ClientToCursor methdo to converts the client coordinates to cursor coordinates. The X and Y coordinates must be pixels coordinates. Make sure that these coordinates are not twips ( By default, the VB uses the twips coordinates, C++ uses pixels ). Use the TextLine property to get the line giving its index.

The following VB sample displays the line from the cursor:

Private Sub Edit1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    With Edit1
        Dim i As Long, c As Long
        .ClientToCursor x / Screen.TwipsPerPixelX, y / Screen.TwipsPerPixelY, c, i
        If (i > 0) Then
            Debug.Print .TextLine(i)
        End If
    End With
End Sub

The following C++ sample displays the line from the cursor:

void OnMouseMoveEdit1(short Button, short Shift, long X, long Y) 
{
	long nLine = 0, nColumn = 0;
	m_edit.ClientToCursor( X, Y, &nColumn, &nLine );
	if ( nLine > 0 )
		OutputDebugString( m_edit.GetTextLine( nLine ) );
}

The following VB.NET sample displays the line from the cursor:

Private Sub AxEdit1_MouseMoveEvent(ByVal sender As Object, ByVal e As AxEXEDITLib._IEditEvents_MouseMoveEvent) Handles AxEdit1.MouseMoveEvent
    With AxEdit1
        Dim i As Integer, c As Integer
        .ClientToCursor(e.x, e.y, c, i)
        If (i > 0) Then
            Debug.WriteLine(.get_TextLine(i))
        End If
    End With
End Sub

The following C# sample displays the line from the cursor:

private void axEdit1_MouseMoveEvent(object sender, AxEXEDITLib._IEditEvents_MouseMoveEvent e)
{
	int iLine = 0, iColumn = 0;
	axEdit1.ClientToCursor(e.x, e.y, out iColumn, out iLine);
	if (iLine > 0)
		System.Diagnostics.Debug.WriteLine(axEdit1.get_TextLine(iLine));
}

The following VFP sample displays the line from the cursor:

*** ActiveX Control Event ***
LPARAMETERS button, shift, x, y

with thisform.Edit1
	local i, c
	i = 0
	c = 0
	.ClientToCursor(x, y, @c, @i)
	If (i > 0) Then
    	wait window nowait .TextLine(i)
	EndIf
endwith