Page 1 sur 1

Récupérer le clic souris avec une fentre ss barre qui bouge

Publié : mer. 02/nov./2005 14:58
par olivier
:? Bon ce fut difficile d'y mettre un titre.

Voila, je travail avec des fenetres sans barre, et j'utilise la fonction pour pouvoir les déplacer facilement. Mais voilà je n'arrive pas a récuperer le clic sur la souris.

Merci d'avance

Code : Tout sélectionner

; German forum:
; Author: Danilo
; Date: 18. April 2003

hWnd = OpenWindow(0, 200, 200, 300, 300, #PB_Window_BorderLess, "...") 
Repeat 
  Select WaitWindowEvent() 
    Case #PB_Event_CloseWindow 
      End 
    Case #WM_LBUTTONDOWN 
        SendMessage_(hWnd, #WM_NCLBUTTONDOWN, #HTCAPTION, 0) 
    Case #WM_LBUTTONUP
        Debug "clic"
  EndSelect 
ForEver 

Publié : mer. 02/nov./2005 15:10
par Twix
bizarre moi ça marche !! 8)
Enfin, en fait, ça marche que pour le double-clic :cry: , si c'est ça que tu veut récuperer :D , tu sauras que ton programme marchera chez moi !! :lol:

P.S : Et puis, par rapport au titre, la fenêtre bouge bien chez moi :)

Publié : mer. 02/nov./2005 15:13
par Chris
Chez moi, ça marche bien

Publié : mer. 02/nov./2005 15:15
par cederavic
Ca marche aussi chez moi : WinXP Pro SP2

Publié : mer. 02/nov./2005 15:15
par Gillou
Je sais pas trop si c'est ça que tu veux :

Autrement regarde le tutorial de Dobro

(La fonction sendmessage bloque temporairement les événements de la fenêtre)

hWnd = OpenWindow (0, 200, 200, 300, 300, #PB_Window_BorderLess , " ... ")
Repeat
Select WaitWindowEvent ()
Case #WM_LBUTTONDOWN
Debug " Bouton gauche appuyé "
SendMessage_(hWnd, #WM_NCLBUTTONDOWN , #HTCAPTION , 0)
Debug " Bouton gauche relaché 1 "
Case #WM_LBUTTONUP
Debug " Bouton gauche relaché 2 "
Case #PB_Event_CloseWindow
End
EndSelect
ForEver

Publié : mer. 02/nov./2005 15:34
par olivier
He ben pour moi le code juste au dessus ne me donne pas à chaque clic le message Bouton gauche relaché 2. J'ai bien le 1 à chaque fois mais pas le 2.

Bon mais j'ai contourner le problème.

Merci à tous pour vos réponse ultra rapide.


J'ai vue plusieurs fois la fonction de l'api pour forcer à redessiner une fenetre et je n'arrive pas à la retrouvé. Je retourne la rechercher encore une fois mais si vous passez par la ...merci d'avance.

Publié : mer. 02/nov./2005 16:11
par Gillou
Bon pour ta première question, normalement tu ne devrais pas voir"bouton gauche relaché 2" lorsque tu déplaces ta fenêtre. Tu ne devrais le voir que si tu fais un double clique.

Regardes sans le sendmessage ce que ça donne

hWnd = OpenWindow (0, 200, 200, 300, 300, #PB_Window_BorderLess , " ... ")
Repeat
Select WaitWindowEvent ()
Case #WM_LBUTTONDOWN
Debug " Bouton gauche appuyé "
Case #WM_LBUTTONUP
Debug " Bouton gauche relaché "
Case #PB_Event_CloseWindow
End
EndSelect
ForEver

Pour la seconde, essaie updatewindow_(windowid())

@+

Publié : mer. 02/nov./2005 18:05
par nico
Pour moi ça ne marche pas pour le click gauche relaché; il faut cliquer deux fois de suite pour avoir l'évènement.

Su tu recherches à savoir quand l'utilisateur relàche le bouton gauche à la fin du déplacement; c'est pas compliqué c'est juste après le sendmessage!

hWnd = OpenWindow (0, 200, 200, 300, 300, #PB_Window_BorderLess , " ... ")
Repeat
   Select WaitWindowEvent ()
     Case #PB_Event_CloseWindow
      End
     Case #WM_LBUTTONUP
       Debug " clic "
      
     Case #WM_LBUTTONDOWN
       Debug " début déplacement "
      SendMessage_(hWnd, #WM_NCLBUTTONDOWN , #HTCAPTION , 0)
       Debug " fin déplacement "

   EndSelect
ForEver



Si ça n'a rien à voir avec le déplacement de la fenêtre, tu peux aussi faire ça; là tu as l'évènement click gauche relaché que si la fenêtre n'est pas déplacé.

hWnd = OpenWindow (0, 200, 200, 300, 300, #PB_Window_BorderLess , " ... ")
Repeat
   Select WaitWindowEvent ()
     Case #PB_Event_CloseWindow
      End
     Case #WM_LBUTTONUP
       Debug " clic "
      
     Case #WM_LBUTTONDOWN
      SendMessage_(hWnd, #WM_NCLBUTTONDOWN , #HTCAPTION , 0)
      PostMessage_(hWnd, #WM_LBUTTONUP , 0, 0)

   EndSelect
ForEver

Tu peux aussi cumuler les deux! :)

Je suis utilisateur du colorer parce que je le vaux bien! :wink:

Publié : mer. 02/nov./2005 18:33
par Gillou
J'adore ta couleur de cheveux :D

Publié : mer. 02/nov./2005 20:49
par olivier
Merci merci,

c'est bon j'ai ce qu'il me faut

Bonne soirée à vous

PS : ils sont jolie vos codes tout en couleurs :D

Publié : mer. 02/nov./2005 21:03
par nico
PS : ils sont jolie vos codes tout en couleurs
Ah ça plaisir que ça se voit parce que c'est vraiment galère à faire, faut tout se taper à la main; à la fin on distingue plus le code du formatage; mais bon à la fin on est content du résultat. :mrgreen:

Publié : mer. 02/nov./2005 22:36
par Backup
:lol: :lol: :lol: :lol: :lol: :lol: