Peut-être ce code peut-il t'aider : chargement du curseur à partir de data (pas à partir d'un .CUR mais d'une image) avec CreateIconIndirect_() :
Code : Tout sélectionner
Procedure DoCursor()
result = 0
mycursor = CatchImage(#PB_Any, ?MidFinger, ?EndCur - ?MidFinger)
newCursor = ResizeImage(mycursor, 32, 32)
img1 = CreateImage(#PB_Any, 32, 32)
StartDrawing(ImageOutput(img1))
DrawImage(newCursor, 0, 0, 32, 32)
maskcolor = Point(0, 0)
For x = 0 To 31
For y = 0 To 31
If Point(x, y) = maskcolor
Plot(x, y, #White)
Else
Plot(x, y, #Black)
EndIf
Next y
Next x
StopDrawing()
icoInf.ICONINFO
icoInf\fIcon = #False
icoInf\xHotspot = 15
icoInf\yHotspot = 1
icoInf\hbmMask = ImageID(img1)
icoInf\hbmColor = newCursor
mycursor = CreateIconIndirect_(@icoInf)
If mycursor
result = mycursor
Else
result = 0
EndIf
ProcedureReturn mycursor
EndProcedure
Procedure UN_Restriction()
country$ = Space(6)
GetLocaleInfo_(#LOCALE_USER_DEFAULT, #LOCALE_ICOUNTRY, @country$, 6)
ProcedureReturn Val(country$)
EndProcedure
img0 = CreateImage(#PB_Any, 50, 50)
StartDrawing(ImageOutput(img0))
Box(0, 0, 50, 50, #Red)
StopDrawing()
If OpenWindow(0, 10,10, 100, 200, "Test", #PB_Window_SystemMenu) And CreateGadgetList(WindowID(0))
ImageGadget(0,10,10,50,50,ImageID(img0))
ButtonGadget(1,10,70,50,50,"A")
If UN_Restriction() <> 61
finger = #True
HandCur = DoCursor()
Else
HandCur = LoadCursor_(0, #IDC_HAND)
EndIf
WaitCur = LoadCursor_(0, #IDC_WAIT)
Repeat
event = WaitWindowEvent()
Select ChildWindowFromPoint_(WindowID(0), WindowMouseX(0), WindowMouseY(0))
Case GadgetID(0)
SetCursor_(HandCur)
Case GadgetID(1)
SetCursor_(WaitCur)
EndSelect
Until event = #PB_Event_CloseWindow
If finger
DestroyIcon_(HandCur)
EndIf
EndIf
End
DataSection
MidFinger:
Data.b $42,$4D,$52,$04,$00,$00,$00,$00,$00,$00,$52,$00,$00,$00,$28,$00
Data.b $00,$00,$20,$00,$00,$00,$20,$00,$00,$00,$01,$00,$08,$00,$00,$00
Data.b $00,$00,$00,$04,$00,$00,$12,$0B,$00,$00,$12,$0B,$00,$00,$07,$00
Data.b $00,$00,$00,$00,$00,$00,$FF,$FF,$FF,$00,$B5,$B5,$B5,$00,$73,$73
Data.b $73,$00,$FF,$00,$00,$00,$84,$00,$00,$00,$73,$00,$00,$00,$00,$00
Data.b $00,$00,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$05,$03,$03
Data.b $04,$04,$04,$04,$04,$04,$04,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$05,$03,$03
Data.b $04,$04,$04,$04,$04,$04,$04,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$05,$03,$03
Data.b $04,$04,$04,$04,$04,$04,$04,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$05,$03,$03
Data.b $04,$04,$04,$04,$04,$04,$04,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$05,$03,$03
Data.b $04,$04,$04,$04,$04,$04,$04,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$04,$04
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$02,$00
Data.b $00,$00,$00,$00,$00,$01,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$02,$00
Data.b $00,$00,$00,$00,$00,$01,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$02,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$01,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$02,$00,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$01,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$02,$00,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$00,$01,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$02,$00,$00,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$00,$01,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$02,$00,$00,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$00,$01,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$02,$00,$00,$00,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$00,$00,$01,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$02,$00,$00,$00,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$00,$00,$01,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$02,$00,$00,$00,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$00,$00,$01,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$02,$00,$00,$02,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$00,$00,$01,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$02,$00,$00,$06,$00,$00
Data.b $00,$00,$00,$00,$00,$00,$02,$00,$01,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$02,$01,$06,$00,$01
Data.b $02,$00,$00,$02,$00,$01,$06,$00,$01,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$02,$06,$00,$01
Data.b $06,$00,$01,$06,$00,$01,$06,$00,$01,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$02,$00,$01
Data.b $06,$00,$01,$06,$00,$01,$06,$02,$02,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$02,$00,$01
Data.b $06,$00,$01,$06,$00,$01,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$02,$02
Data.b $06,$00,$01,$06,$02,$02,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$00,$01,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$00,$01,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$00,$01,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$00,$01,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$00,$01,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$02,$02,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06,$06
Data.b $06,$06
EndCur:
EndDataSection