Page 1 sur 1

coordonnées de la souris sur un gadget

Publié : jeu. 17/mai/2007 23:13
par minirop
bonjour,
j'aimerais savoir comment récupérer les coordonnées de la souris sur un gadget (de préférence et non pas par rapport à la fenêtre ou à l'écran).
Je pensais qu'il fallait utiliser le module Mouse mais faut ouvrir un screen :s
merci

edit : mais oui ! l'API win32 (j'y pense jamais en pure), je vais aller chercher dans la doc mais si quelqu'un à les fonctions en tête qu'il hésite pas ;)

edit 2 : j'arrive à récupérer les cliques sur la fenêtre là ou il y a pas de gadget mais j'y arrive pas sur un gadget :( (j'utilise setWindowCallback)

Re: coordonnées de la souris sur un gadget

Publié : ven. 18/mai/2007 0:11
par Backup
minirop a écrit : edit 2 : j'arrive à récupérer les cliques sur la fenêtre là ou il y a pas de gadget mais j'y arrive pas sur un gadget :( (j'utilise setWindowCallback)
moi je me demande pourquoi on s'est emmerdé a faire des Tuto dans la sections débutants, si personne ne les regardes !! :roll:

IL Y A UN TUTO "souris" !!! :wink:

Publié : ven. 18/mai/2007 7:13
par Anonyme
pas besoin d'api
tu récupère les coordonées de ton gadget et ceux de ta souris, puis une p'tite soustraction pour avoir les coordonées relatives au gadget

Code : Tout sélectionner

OpenWindow(0,0,0,640,480,"")
CreateGadgetList(WindowID(0))
ButtonGadget(0,320,240,100,25,Txt$)
  
  Repeat
    event = WindowEvent()
    If WindowMouseX(0)>320 And WindowMouseX(0)<100+320
      If WindowMouseY(0)>240 And WindowMouseY(0)<25+240
        X = WindowMouseX(0)-320
        Y = WindowMouseY(0)-240
        Txt$ = "X="+Str(X)+" Y="+Str(Y)
        SetGadgetText(0,Txt$)
      EndIf 
    EndIf
  Until event  = #PB_Event_CloseWindow
a toi de rendre ca polyvalent à tous tes gadgets :wink:

Publié : ven. 18/mai/2007 7:20
par Anonyme
voila quand meme :



Code : Tout sélectionner

OpenWindow(0,0,0,640,480,"")
CreateGadgetList(WindowID(0))


For Y = 0 To 18
For X = 0 To 7
  ButtonGadget(#PB_Any,X*80,Y*25,80,25,"click me")
Next 
Next 




  Repeat
    event = WindowEvent()
    
    
    If event = #PB_Event_Gadget
      GadgetID = EventGadget()
      
      H.l = GadgetHeight(GadgetID)
      W.l = GadgetWidth(GadgetID)
      X.l = GadgetX(GadgetID)
      Y.l = GadgetY(GadgetID)
      
      If WindowMouseX(0)>X And WindowMouseX(0)<W+X
       If WindowMouseY(0)>Y And WindowMouseY(0)<H+Y
        X = WindowMouseX(0)-X
        Y = WindowMouseY(0)-Y
        Txt$ = "X="+Str(X)+" Y="+Str(Y)
        SetGadgetText(GadgetID,Txt$)
      EndIf 
    EndIf

      
    EndIf
    

    
  Until event  = #PB_Event_CloseWindow


:wink:

Publié : ven. 18/mai/2007 13:12
par minirop
Dobro > :oops: mais WindowMouse*() est plus simple tu devrais le rajouter

Cpt.Bator > merci

Publié : ven. 18/mai/2007 13:23
par brossden
Bonjour à tous

Il est vrai que certains TUTOS non plus leur place ici ils datent un peu, l'évolution des fonctions internes de PureBasic évoluant....

Enfin c'est juste mon avis !

Publié : ven. 18/mai/2007 16:06
par Backup
minirop a écrit :Dobro > :oops: mais WindowMouse*() est plus simple tu devrais le rajouter

Cpt.Bator > merci
je l'ai ajouté ,
mais WindowMouse* donne la coordonnée dans la Fenêtre, pas dans un gadget !!
or il me semble que c'était la question .. :)

Publié : ven. 18/mai/2007 18:04
par minirop
Dobro a écrit :
minirop a écrit :Dobro > :oops: mais WindowMouse*() est plus simple tu devrais le rajouter

Cpt.Bator > merci
je l'ai ajouté ,
mais WindowMouse* donne la coordonnée dans la Fenêtre, pas dans un gadget !!
or il me semble que c'était la question .. :)
j'ai fais :
posx.l = (WindowMouseX(0)-GadgetX(#Scroll2)+GetGadgetAttribute(#Scroll2,#PB_ScrollArea_X))