[RESOLU] detection abscence de mouvement souris

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

[RESOLU] detection abscence de mouvement souris

Message par Patrick88 »

je recherche la fonction permettant de détecter l'abscence de mouvement du curseur souris , le contraire de #WM_MOUSE_MOVE en quelque sorte...

quelqu'un a une idée, j'ai rien trouvé dans "recherche" du forum

pat
Dernière modification par Patrick88 le mer. 08/nov./2006 18:58, modifié 1 fois.
meganet
Messages : 317
Inscription : jeu. 20/janv./2005 22:00

If else endif

Message par meganet »

Salut, bas tu fait une condition if MouvementSourie = 1
ce que ton programme fait si le curseur bouge,
else
ce que ton programme fait si ton curseur ne bouge pas
endif

Tout simplement!
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Message par Patrick88 »

voui, mais je pensais plus à un événement du style #WM_MOUSE_NOMOVE
ou à un getmessage_()

un truc que l'on peut pièger dans la boucle des évenements...

bon à défaut je ferai ce que tu dis....

merci

pat
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Message par flaith »

detection abscence de mouvement => Joli pléonasme :)
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message par nico »

Si tu peux détecter le mouvement de la souris, c'est que forcément tu sais si elle bouge ou pas.

Tu traite le message #WM_MOUSEMOVE , si t'as souris bouge tu as un évènement sinon c'est qu'elle ne bouge pas.
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message par brossden »

Tu peux peut être utiliser un thread ...

Exemple :

Code : Tout sélectionner

Enumeration
  #Win0
  #Text0
EndEnumeration

Global FontID1, Mx, My
FontID1 = LoadFont(1, "Comic Sans MS", 14, #PB_Font_Bold)

Procedure Open_Win0()
  If OpenWindow(#Win0, 461, 133, 399, 348, "Mouvement de la souris",  #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    If CreateGadgetList(WindowID(#Win0))
      TextGadget(#Text0, 70, 50, 230, 30, "La souris ne bouge pas", #PB_Text_Center)
      SetGadgetFont(#Text0, FontID1)
      
    EndIf
  EndIf
EndProcedure

Procedure MouseMove(n)
  Repeat
    GetCursorPos_(CursorPos.POINT)
    MouseX = CursorPos\x
    MouseY = CursorPos\y
    If MouseX=Mx And MouseY =My
      SetGadgetText(#Text0,"La souris ne bouge pas")
    Else
      SetGadgetText(#Text0,"La souris bouge")
    EndIf
    Mx=MouseX
    My=MouseY
    Delay(n)
  ForEver
  
EndProcedure

Open_Win0()
CreateThread(@MouseMove(),50)

Repeat 
  Event = WaitWindowEvent() 
Until Event = #PB_Event_CloseWindow 
End
57
Denis

Bonne Jounée à tous
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Message par Patrick88 »

RESOLU avec un bout des 2 ( nico et meganet )
télécharger
"avant.exe" http://patrick.claude.free.fr/DEV/avant.exe
et
"après.exe"http://patrick.claude.free.fr/DEV/apr%e8s.exe

(à la fermeture, les exe créent un fichier "ENTITIES.csv")

dans le menu dessin , choisir "ligne" ou "cercle" ou "rectangle"
cliquer le point de départ de l'objet
en bougeant la souris on donne la forme à l'objet

"avant .exe" = lorsque la souris cesse de bouger, l'objet n'est pas redessiné
"après.exe" = lorsque la souris cesse de bouger, l'objet est quand même redessiné

extrait du code

Code : Tout sélectionner

Flag_sourisbouge = #False
Repeat
  MX = WindowMouseX(0)
  MY = WindowMouseY(0)
  Delay(1)
  
  EVENT = WindowEvent()
  Select FGC_L_EVENT
     case #PB_Event_CloseWindow
  	QUIT = 2
  	
     Case #WM_MOUSEMOVE
  	Flag_sourisbouge = #True
  	ActionCreationEntities(drawent)
  	
     Case #WM_LBUTTONUP ;{
  	Select drawent 
  	  Case #ENT_POINT
		....
  		
  Default
     If Flag_sourisbouge = #False And DrawEnt<>-1
	ActionCreationEntities(drawent)
     EndIf
     Flag_sourisbouge = #False
  EndSelect
  
...
Répondre