' DANS UN MODULE
Option Explicit
'
Public Enum eOcrCursors
OCR_FROMFILE = 0 'curseur non standard, chemin
'
OCR_CROSS = 32515 '"Crosshair" - Croix (en forme de +).
OCR_IBEAM = 32513 '"IBeam" - Curseur de saisie (en forme de I).
OCR_APPSTARTING = 32650 '"AppStarting" - Flèche + Sablier.
OCR_NO = 32648 '"No" - Symbôle interdiction.
OCR_NORMAL = 32512 '"Arrow" - Curseur par défaut (flèche).
OCR_SIZE = 32640 '"Size" - Flèche en croix (en forme de X). <-- W95
OCR_SIZEALL = 32646 '"SizeAll" - Flèche en croix (en forme de X).
OCR_SIZENESW = 32643 '"SizeNESW" - Flèche Nord,Est-Sud,Ouest.
OCR_SIZENS = 32645 '"SizeNS" - Flèche Nord-Sud.
OCR_SIZENWSE = 32642 '"SizeNWSE" - Flèche Nord,Ouest-Sud,Est.
OCR_SIZEWE = 32644 '"SizeWE" - Flèche Ouest-Est.
OCR_UP = 32516 '"UpArrow" - Flèche pointant vers le haut.
OCR_WAIT = 32514 '"Wait" - Sablier.
End Enum
Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal hIcon As Long) As Long
Private Declare Function LoadCursor Lib "user32" Alias "LoadCursorA" (ByVal hInstance As Long, ByVal lpCursorName As Long) As Long
Private Declare Function LoadCursorFromFile Lib "user32" Alias "LoadCursorFromFileA" (ByVal lpFileName As String) As Long
Private Declare Function DestroyCursor Lib "gdi32" (ByVal hCursor As Long) As Long
Public Sub DrawCursor(eCur As eOcrCursors, lhDC As Long, X As Long, Y As Long, Optional sPath As String = vbNullString)
' dessine un curseur en couleur sur une position sur un hdc. curseur standard ou chemin valide
Dim hCur As Long
If eCur = OCR_FROMFILE Then
hCur = LoadCursorFromFile(sPath)
Else
hCur = LoadCursor(ByVal 0&, eCur)
End If
Call DrawIcon(lhDC, X, Y, hCur)
Call DestroyCursor(hCur)
End Sub
' =====================
' EXEMPLE D'UTILISATION
' =====================
Option Explicit
'
Private Sub Form_Paint()
Call DrawCursor(OCR_FROMFILE, Me.hdc, 10, 10, "C:\WINDOWS\CURSORS\HOURGLAS.ANI")
Call DrawCursor(OCR_CROSS, Me.hdc, 10, 120)
Call DrawCursor(OCR_SIZEALL, Me.hdc, 50, 120)
Call DrawCursor(OCR_WAIT, Me.hdc, 90, 120)
End Sub