[C++/MFC] Empêcher la souris de sortir d'un CRect [RESOLU]

Empêcher la souris de sortir d'un CRect [RESOLU] [C++/MFC] - Programmation

Marsh Posté le 22-08-2002 à 15:43:53    

Comment faire pour empécher la souris de sortir d'une zone rectangulaire ?


Message édité par Zeux le 22-08-2002 à 20:12:13

---------------
Guerre Dollar - Euro : la chute economique des Etats-Unis avant 2010.
Reply

Marsh Posté le 22-08-2002 à 15:43:53   

Reply

Marsh Posté le 22-08-2002 à 16:02:44    

La souris !? ...En attachant le bras de l'utilisateur ! :D
Par contre si tu parles du pointeur, c pas compliqué.
A chaque mouvement du curseur, tu teste sa position. si il est en train de sortir du rectangle, tu le remplace en dehors.

Reply

Marsh Posté le 22-08-2002 à 16:05:06    

Grâce à l'API ClipCursor().
 
The ClipCursor function confines the cursor to a rectangular area on the screen.

Reply

Marsh Posté le 22-08-2002 à 16:06:55    

:D J'avais pas pensé au tapis de souris rectangulaire pour limiter son déplacement (J'en ai une qui est par terre sur la moquette, j'ai toute la surface pour bouger la souris :D).

Reply

Marsh Posté le 22-08-2002 à 16:09:12    

El_Gringo a écrit a écrit :

La souris !? ...En attachant le bras de l'utilisateur ! :D
Par contre si tu parles du pointeur, c pas compliqué.
A chaque mouvement du curseur, tu teste sa position. si il est en train de sortir du rectangle, tu le remplace en dehors.




Nan je veux pas le changer juste l'empecher de sortir.
 
Mais bon oui je parle du curseur  [:nofret]


---------------
Guerre Dollar - Euro : la chute economique des Etats-Unis avant 2010.
Reply

Marsh Posté le 22-08-2002 à 16:09:25    

carbon_14 a écrit a écrit :

Grâce à l'API ClipCursor().
 
The ClipCursor function confines the cursor to a rectangular area on the screen.




 :hello:


---------------
Guerre Dollar - Euro : la chute economique des Etats-Unis avant 2010.
Reply

Marsh Posté le 22-08-2002 à 16:27:54    

J'ai déja essayé de tester la position courante du curseur et de forcer son retour dans la zone assignée, mais, si on déplace rapidement la souris, le curseur déborde avant d'être "remis à sa place" (peut-être parce que mes boucles de test sont assez encombrées). On croirait un peu qu'il est attaché avec un élastique :).
 
L'API doit "causer" directement avec le pilote : ça bloque bien le curseur sans risque de dépasser !
 
Faut pas oublier d'inhiber quand y a plus besoin, car sinon, on reste confiné au rectangle ! On est alors obligé de retrouver les raccourcis clavier pour lancer les commandes/dérouler les menus (expérience perso  :D  :D).

Reply

Marsh Posté le 22-08-2002 à 16:28:32    

zeux a écrit a écrit :

 
Nan je veux pas le changer juste l'empecher de sortir.
 
Mais bon oui je parle du curseur  [:nofret]  




 
J'me suis planté, j'voulais dire : s'il sort, tu le replace à l'intérieur.
Ms si ClipCursor() le fait déja, c sur, c + simple !

Reply

Marsh Posté le 22-08-2002 à 20:11:33    

carbon_14 a écrit a écrit :

J'ai déja essayé de tester la position courante du curseur et de forcer son retour dans la zone assignée, mais, si on déplace rapidement la souris, le curseur déborde avant d'être "remis à sa place" (peut-être parce que mes boucles de test sont assez encombrées). On croirait un peu qu'il est attaché avec un élastique :).
 
L'API doit "causer" directement avec le pilote : ça bloque bien le curseur sans risque de dépasser !
 
Faut pas oublier d'inhiber quand y a plus besoin, car sinon, on reste confiné au rectangle ! On est alors obligé de retrouver les raccourcis clavier pour lancer les commandes/dérouler les menus (expérience perso  :D  :D).




Pour avoir programmé la souris directement en assembleur étant jeune je peux confirmer qu'il existe des moyens au niveau du pilote pour empêcher le curseur de sortir d'une zone prédéfinie. D'où la perfection de la fonction ClipCursor().
 
Merci à ceux qui m'ont aidé pour ce problème :jap:


Message édité par Zeux le 22-08-2002 à 20:12:01

---------------
Guerre Dollar - Euro : la chute economique des Etats-Unis avant 2010.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed