Change the mouse cursor for gadgets with API:
Code: Select all
;
; Open a Window with Gadgets
;
hWnd = OpenWindow(1,10,10,400,200,#PB_Window_SystemMenu,"")
CreateGadgetList(hWnd)
Button1 = ButtonGadget(1,210,10,100,25,"WAIT")
Button2 = ButtonGadget(2,210,40,100,25,"HELP")
ListView = ListViewGadget(3,10,10,200,150)
;
; Set default cursor in all classes to 0
; Without doing this, flickering occurs
;
SetClassLong_(hWnd,#GCL_HCURSOR,0)
SetClassLong_(Button1,#GCL_HCURSOR,0)
SetClassLong_(Button2,#GCL_HCURSOR,0)
SetClassLong_(ListView,#GCL_HCURSOR,0)
;
; Load the cursors
;
#IDC_HELP = 32651
cur0 = LoadCursor_(0, #IDC_CROSS)
cur1 = LoadCursor_(0, #IDC_WAIT)
cur2 = LoadCursor_(0, #IDC_HELP)
cur3 = LoadCursor_(0, #IDC_NO)
;
; Main loop
;
Repeat
Event = WaitWindowEvent()
Gosub changecursor
;Select Event
;EndSelect
Until Event = #PB_EventCloseWindow
;
; End
;
DestroyCursor_(cur0)
DestroyCursor_(cur1)
DestroyCursor_(cur2)
DestroyCursor_(cur3)
End
;
; SUB for changing cursor
;
changecursor:
GetCursorPos_(cursorpos.POINT)
MapWindowPoints_(0, hWnd, cursorpos, 1)
Select ChildWindowFromPoint_(hWnd, cursorpos\x, cursorpos\y)
Case Button1 : SetCursor_(cur1) ; Cursor over Button 1
Case Button2 : SetCursor_(cur2) ; Cursor over Button 2
Case ListView : SetCursor_(cur3) ; Cursor over ListView
Case hWnd : SetCursor_(cur0) ; Default, for the main window
EndSelect
Return
...Danilo
(registered PureBasic user)