Type | Description | |||
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