emphyrio61
2019-04-26T14:36:40Z
Hello,

I'm trying to change the cursor to the hand symbol on the header of the iGrid active-X control in an MS-Access 2010 database.
It works fine for the grid itself using the MouseMove event of the control. But not for the headers. How can I change the mouse cursor when hovering over the header?
Hope there is a solution?

My Code:

Private Const IDC_HAND = 32649&
Private Declare Function LoadCursorLong Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
Private Declare Function SetCursor Lib "user32" (ByVal hCursor As Long) As Long

Private Function SetMouseCursor(CursorType As Long)
Dim hCursor As Long
hCursor = LoadCursorLong(0&, CursorType)
hCursor = SetCursor(hCursor)
End Function

Private Sub IG_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single, ByVal lRow As Long, ByVal lCol As Long)
If IG.CellIcon(lRow, lCol) > 0 Then SetMouseCursor IDC_HAND
End Sub

This shows the hand symbol whenever there is an icon in the cell.
How to do it for the header?

Best regards,
Emphyrio
Igor/10Tec
2019-04-29T07:09:00Z
iGrid's header is an instance of the Microsoft Header Control provided by the OS. It's another control inside the whole iGrid control. You can try to duplicate your code that changes the cursor for the header control in an event handler of the ColHeaderMouseEnter event. However, the Microsoft Header Control may override your settings as it has its own processing of mouse events.
emphyrio61
2019-04-29T09:29:26Z
Yes, I did try the ColHeaderMouseEnter event, but it did not work.
Would you know any API calls that might do the trick?
Igor/10Tec
2019-04-30T06:06:58Z
No. At the moment, I can't suggest a solution. As I wrote, the Microsoft Header Control has its own logic, and I doubt we can find a robust solution to set our cursor in all possible scenarios.

Can you tell us, why do you want to change the cursor for the whole grid? It would be nice to see an accompanying screenshot.
emphyrio61
2019-04-30T10:23:19Z
Hi, The reason is that in my whole application all user actions are indicated by the hand cursor, like on a website. I have icons in the header for specific actions like exporting to Excel. To give my user a sense of continuity, I would like to change the cursor so they know an action is available when hovering over the header. See attachment: eStar.png