property Grid.ColumnFromPoint (X as OLE_XPOS_PIXELS, Y as OLE_YPOS_PIXELS) as Long
Retrieves the column from point.

TypeDescription
X as OLE_XPOS_PIXELS A single that specifies the current X location of the mouse pointer. The x values is always expressed in client coordinates.
Y as OLE_YPOS_PIXELS A single that specifies the current X location of the mouse pointer. The x values is always expressed in client coordinates.
Long A long expression that indicates the column's index, or -1 if there is no column at the point. The property gets a negative value less or equal with 256, if the point is in the area between columns where the user can resize the column. 

Use the ColumnFromPoint property to access the column from the point specified by the {X,Y} coordinates. The ColumnFromPoint property gets the index of the column when the cursor hovers the control's header bar. The X and Y coordinates are expressed in client coordinates, so a conversion must be done in case your coordinates are relative to the screen or to other window. If the X parameter is -1 and Y parameter is -1 the ColumnFromPoint property determines the index of the column from the cursor. Use the ItemFromPoint property to get the item or cell from the cursor. Use the HeaderVisible property to show or hide the control's header. The ColumnFromPoint property returns -1 if there is no column's caption at the cursor position. Use the Visible property to hide a particular column. Use the LevelKey property to allow multiple levels header bar. Use the HeaderHeight property to specify the height of the control's header bar. Use the BackColorHeader property to specify the header's background color. Use the AllowSizing property to disable resizing a column when user clicks the right margin of the column. Use the SortOnClick property to specify the action that control takes when the column's caption is clicked. The Background(exCursorHoverColumn) property specifies the visual appearance of the column's header when the cursor hovers it.  The WordFromPoint property determines the word from the cursor.

The following VB sample prints the caption of the column from the point:

Private Sub Grid1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    With Grid1
        Dim c As Long
        c = .ColumnFromPoint(-1, -1)
        If (c >= 0) Then
            With .Columns(c)
                Debug.Print .Caption
            End With
        End If
    End With
End Sub

The following VB sample prints the caption of the column from the point:

Private Sub Grid1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    With Grid1
        Dim c As Long
        c = .ColumnFromPoint(X / Screen.TwipsPerPixelX, Y / Screen.TwipsPerPixelY)
        If (c >= 0) Then
            With .Columns(c)
                Debug.Print .Caption
            End With
        End If
    End With
End Sub

The following C++ sample prints the caption of the column from the point:

#include "Columns.h"
#include "Column.h"
void OnMouseMoveGrid1(short Button, short Shift, long X, long Y) 
{
	long nColIndex = m_grid.GetColumnFromPoint( X, Y );
	if ( nColIndex >= 0 )
	{
		CColumn column = m_grid.GetColumns().GetItem( COleVariant( nColIndex ) );
		OutputDebugString( column.GetCaption() );
	}
}

The following VB.NET sample prints the caption of the column 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 = .get_ColumnFromPoint(e.x, e.y)
        If (i >= 0) Then
            With .Columns(i)
                Debug.WriteLine(.Caption)
            End With
        End If
    End With
End Sub

The following C# sample prints the caption of the column from the point:

private void axGrid1_MouseMoveEvent(object sender, AxEXGRIDLib._IGridEvents_MouseMoveEvent e)
{
	int i = axGrid1.get_ColumnFromPoint( e.x,e.y );
	if ( i >= 0 )
		System.Diagnostics.Debug.WriteLine( axGrid1.Columns[i].Caption  );
}

The following VFP sample prints the caption of the column from the point:

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

with thisform.Grid1
	i = .ColumnFromPoint( x, y )
	if ( i >= 0 )
		wait window nowait .Columns(i).Caption
	endif
endwith