MouseOverGadget

Partagez votre expérience de PureBasic avec les autres utilisateurs.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

MouseOverGadget

Message par nico »

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é 

  Procedure ProcedureCallback(WindowID, Message, wParam, lParam) 
    Resultat = #PB_ProcessPureBasicEvents 
    Select Message
      Case #WM_SETCURSOR 
        Debug "Handle= "+Str(wParam)+"   , "+"ID= "+Str(GetDlgCtrlID_(wParam))
        
    EndSelect
    ProcedureReturn Resultat 
  EndProcedure 
  
  Enumeration
    #Window
    #String          ;ID=1
    #Button         ;ID=2
    #CheckBox    ;ID=3
  EndEnumeration
 
  If OpenWindow(#Window,0,0,400,400,#PB_Window_SystemMenu|#PB_Window_ScreenCentered,"Pure Basic")
    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(@ProcedureCallback()) 

    Repeat
      EventID.l=WaitWindowEvent()
      Select EventID
          
        Case #PB_EventGadget
          Select EventGadgetID()
            Case 0

          EndSelect
          
        Case #WM_CLOSE
          Quit=1
      EndSelect 
    Until Quit=1 
  EndIf