Je reviens sur les couleurs mais c'est tellement plus simple..
Et ça marchera sur toutes les formes.
Certes il faut que les couleurs du bouton diffèrent du fond mais c'est bien le but lorsqu'on veut simuler un bouton non carré...
Code : Tout sélectionner
Declare Start()
Declare onEnter()
Declare Exit()
Start()
Procedure Start()
OpenWindow(0, 0, 0, 800, 600, "Test", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CanvasGadget(0, 100, 100, 100, 100)
StartDrawing(CanvasOutput(0))
LineXY(50, 10, 10, 90, $00ff00)
LineXY(10, 90, 90, 90, $00ff00)
LineXY(90, 90, 50, 10, $00ff00)
FillArea(50, 50 + 5, $00ff00, $00ff00)
StopDrawing()
;Triggers
BindEvent(#PB_Event_CloseWindow, @Exit())
BindGadgetEvent(0, @onEnter())
Repeat : WaitWindowEvent() : ForEver
EndProcedure
Procedure onEnter()
If EventType() <> #PB_EventType_MouseLeave
StartDrawing(CanvasOutput(0))
Mx = GetGadgetAttribute(0, #PB_Canvas_MouseX)
My = GetGadgetAttribute(0, #PB_Canvas_MouseY)
COL = Point(Mx,My)
If COL = $00ff00
Debug "dans le triangle"
Else
Debug "hors triangle"
EndIf
StopDrawing()
EndIf
EndProcedure
Procedure Exit()
End
EndProcedure