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 !!
IL Y A UN TUTO "souris" !!!

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

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

Publié : ven. 18/mai/2007 13:12
par minirop
Dobro >

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 >

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 >

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))