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

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

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

Message 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 
Vive le temps libre !
Twix
Messages : 46
Inscription : mer. 07/sept./2005 10:58

Message 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 :)
Twix : au secours, vlà les bugs qu'arrivents !!
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Chez moi, ça marche bien
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

Ca marche aussi chez moi : WinXP Pro SP2
Gillou
Messages : 373
Inscription : sam. 28/août/2004 17:35
Localisation : Bretagne, 22
Contact :

Message 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
Dernière modification par Gillou le mer. 02/nov./2005 18:32, modifié 1 fois.
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Message 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.
Vive le temps libre !
Gillou
Messages : 373
Inscription : sam. 28/août/2004 17:35
Localisation : Bretagne, 22
Contact :

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

@+
Dernière modification par Gillou le mer. 02/nov./2005 18:31, modifié 2 fois.
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message 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:
Gillou
Messages : 373
Inscription : sam. 28/août/2004 17:35
Localisation : Bretagne, 22
Contact :

Message par Gillou »

J'adore ta couleur de cheveux :D
olivier
Messages : 305
Inscription : mer. 05/janv./2005 12:58
Localisation : http://www.tib-net.com/meca/index.htm

Message 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
Vive le temps libre !
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message 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:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

:lol: :lol: :lol: :lol: :lol: :lol:
Répondre