Page 1 sur 1
Evenement passage souris sur gadget
Publié : mer. 13/nov./2013 10:16
par omega
Bonjour,
Sûrement ça existe mais j'avoue que je n'ai rien trouvé sur l'aide, j'utilise une ancienne version sur ce pc (autre que le mien).
Ma question: comment savoir si le pointeur de la souris se trouve sur un gadget image? (comme le link du web).
Il y a sûrement un évènement windows pour tester ça je crois (enfin normalement ça doit exister, car c important)
Je veux juste changer l'image dès que l'utilisateur amène sa souris sur une image.
Merci
Re: Evenement passage souris sur gadget
Publié : mer. 13/nov./2013 10:31
par Backup
Code : Tout sélectionner
; Détecte le passage de la souris au dessus d'un Gadget
; on peut ainsi récupérer son ID ou son Handle
; il faut que l'ID du Gadget commence par 1
; car le message renvoie null s'il n'est pas au dessus un Gadget
; de plus si le gadget est désactivée, il ne sera pas détecté
Declare Callback(WindowID, message, wParam, lParam)
Enumeration
#window
;#String ;ID=1
#Button ;ID=2
#CheckBox ;ID=3
#String
EndEnumeration
If OpenWindow(#window,0,0,400,400,"Pure Basic",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CreateGadgetList(WindowID(#window))
StringGadget(#String,20, 20,200,20,"Normal StringGadget...")
ButtonGadget(#Button, 20, 60, 200, 20, "Standard Button")
CheckBoxGadget(#CheckBox,20, 100,200,20,"CheckBox standard")
;DisableGadget(#Button,1)
SetWindowCallback(@Callback())
Repeat
EventID.l=WaitWindowEvent()
Select EventID
Case #PB_Event_Gadget
Select EventGadget()
Case 0
EndSelect
Case #WM_CLOSE
Quit=1
EndSelect
Until Quit=1
EndIf
Procedure Callback(WindowID, message, wParam, lParam)
Resultat = #PB_ProcessPureBasicEvents
Select message
Case #WM_SETCURSOR
Debug "Handle= "+Str(wParam)+" , "+"ID= "+Str(GetDlgCtrlID_(wParam))
EndSelect
ProcedureReturn Resultat
EndProcedure
; EPB
Re: Evenement passage souris sur gadget
Publié : mer. 13/nov./2013 11:35
par Mesa
Code : Tout sélectionner
Enumeration
#Windows
#ImageGadget1
EndEnumeration
;Macro de je ne sais plus qui
Macro OverGadget(x, y, Gadget)
(((Not x<GadgetX(Gadget)) & (Not y<GadgetY(Gadget))) & (Not x>=(GadgetX(Gadget)+GadgetWidth(Gadget))) & (Not y>=(GadgetY(Gadget)+GadgetHeight(gadget))))
EndMacro
;
If CreateImage(0, 100, 100)
If StartDrawing(ImageOutput(0))
Box(0,0,100,100, RGB(0,255,0))
StopDrawing()
EndIf
EndIf
If CreateImage(1, 100, 100)
If StartDrawing(ImageOutput(1))
Box(0,0,100,100, RGB(255,0,0))
StopDrawing()
EndIf
EndIf
If OpenWindow(#Windows, 0, 0, 200, 200, "Survoler", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
ImageGadget(#ImageGadget1,50,50,100,100,ImageID(0))
Repeat
Event = WaitWindowEvent()
x=WindowMouseX(#Windows):y=WindowMouseY(#Windows)
If OverGadget(x,y , #ImageGadget1)
Debug "Ok"
SetGadgetState(#ImageGadget1,ImageID(1))
EndIf
Until Event = #PB_Event_CloseWindow
EndIf
M.
Re: Evenement passage souris sur gadget
Publié : mer. 13/nov./2013 13:40
par Ar-S
Dobro tu devrais te faire un programme pour supprimer les
de tes nombreux codes.