![]() | Type | Description | ||
| Button as Integer | An integer that corresponds to the state of the mouse buttons in which a bit is set if the button is down. | |||
| Shift as Integer | An integer that corresponds to the state of the SHIFT, CTRL, and ALT keys. | |||
| X as OLE_XPOS_PIXELS | A single that specifies the current X location of the mouse pointer. The x values is always expressed in container coordinates | |||
| Y as OLE_YPOS_PIXELS | A single that specifies the current Y location of the mouse pointer. The y values is always expressed in container coordinates |
The MouseMove event is generated continually as the mouse pointer moves across objects. Unless another object has captured the mouse, an object recognizes a MouseMove event whenever the mouse position is within its borders. Use the ItemFromPoint property to get the item from cursor. Use the ColumnFromPoint property to get the column from point. The Background(exCursorHoverColumn) property specifies the visual appearance of the column's header when the cursor hovers it. Use the AnchorFromPoint property to retrieve the identifier of the anchor element from the point.
The following VB sample prints the cell's caption from the cursor ( if the control contains no inner cells. Use the SplitCell property to insert inner cells ) :
Private Sub Grid1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
On Error Resume Next
' Converts the container coordinates to client coordinates
X = X / Screen.TwipsPerPixelX
Y = Y / Screen.TwipsPerPixelY
Dim h As HITEM
Dim c As Long
Dim hit As EXGRIDLibCtl.HitTestInfoEnum
' Gets the item from (X,Y)
h = Grid1.ItemFromPoint(X, Y, c, hit)
If Not (h = 0) Then
Debug.Print Grid1.Items.CellValue(h, c) & " HT = " & hit
End If
End Sub
The following VB sample displays the cell's caption from the cursor ( if the control contains inner cells ):
Private Sub Grid1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
On Error Resume Next
' Converts the container coordinates to client coordinates
X = X / Screen.TwipsPerPixelX
Y = Y / Screen.TwipsPerPixelY
Dim h As HITEM
Dim c As Long
Dim hit As EXGRIDLibCtl.HitTestInfoEnum
' Gets the item from (X,Y)
h = Grid1.ItemFromPoint(X, Y, c, hit)
If Not (h = 0) Or Not (c = 0) Then
Debug.Print Grid1.Items.CellValue(h, c) & " HT = " & hit
End If
End Sub
The following C++ sample displays the cell's from the point:
#include "Items.h"
static CString V2S( VARIANT* pv, LPCTSTR szDefault = _T("") )
{
if ( pv )
{
if ( pv->vt == VT_ERROR )
return szDefault;
COleVariant vt;
vt.ChangeType( VT_BSTR, pv );
return V_BSTR( &vt );
}
return szDefault;
}
void OnMouseMoveGrid1(short Button, short Shift, long X, long Y)
{
long c = 0, hit = 0, hItem = m_grid.GetItemFromPoint( X, Y, &c, &hit );
if ( ( hItem != 0 ) || ( c != 0 ) )
{
CItems items = m_grid.GetItems();
COleVariant vtItem( hItem ), vtColumn( c );
CString strCaption = V2S( &items.GetCellValue( vtItem, vtColumn ) ), strOutput;
strOutput.Format( "Cell: '%s', Hit = %08X\n", strCaption, hit );
OutputDebugString( strOutput );
}
}
The following VB.NET sample displays the cell's from the point:
Private Sub AxGrid1_MouseMoveEvent(ByVal sender As Object, ByVal e As AxEXGRIDLib._IGridEvents_MouseMoveEvent) Handles AxGrid1.MouseMoveEvent
With AxGrid1
Dim i As Integer, c As Integer, hit As EXGRIDLib.HitTestInfoEnum
i = .get_ItemFromPoint(e.x, e.y, c, hit)
If (Not (i = 0) Or Not (c = 0)) Then
Debug.WriteLine("Cell: " & .Items.CellValue(i, c) & " Hit: " & hit.ToString())
End If
End With
End Sub
The following C# sample displays the cell's from the point:
private void axGrid1_MouseMoveEvent(object sender, AxEXGRIDLib._IGridEvents_MouseMoveEvent e)
{
int c = 0;
EXGRIDLib.HitTestInfoEnum hit;
int i = axGrid1.get_ItemFromPoint( e.x, e.y, out c,out hit );
if ( ( i != 0 ) || ( c != 0 ) )
{
object cap = axGrid1.Items.get_CellValue(i, c);
string s = cap != null ? cap.ToString() : "";
s = "Cell: " + s + ", Hit: " + hit.ToString();
System.Diagnostics.Debug.WriteLine(s);
}
}
The following VFP sample displays the cell's from the point:
*** ActiveX Control Event *** LPARAMETERS button, shift, x, y local c, hit c = 0 hit = 0 with thisform.Grid1 .Items.DefaultItem = .ItemFromPoint( x, y, @c, @hit ) if ( .Items.DefaultItem <> 0 ) or ( c <> 0 ) wait window nowait .Items.CellValue( 0, c ) + " " + Str( hit ) endif endwith