Page 1 sur 1
[RESOLU] detection abscence de mouvement souris
Publié : mar. 07/nov./2006 20:34
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
If else endif
Publié : mar. 07/nov./2006 20:48
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!
Publié : mar. 07/nov./2006 21:35
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
Publié : mer. 08/nov./2006 2:39
par flaith
detection abscence de mouvement => Joli pléonasme

Publié : mer. 08/nov./2006 11:25
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.
Publié : mer. 08/nov./2006 16:22
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
Publié : mer. 08/nov./2006 18:57
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
...