Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
811 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [MFC] Mouvement de la souris...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[MFC] Mouvement de la souris...

n°367029
iS@mi
Resistance is futile !
Posté le 19-04-2003 à 05:55:23  profilanswer
 

Bonjour,
Je suis confronté a un petit problème dans la création d'un control personnel.
 
Je cherche un moyen de lancer une boucle tant que le bouton de la souris est enfoncé.
 
Un peu dans ce style :
 

Code :
  1. while(!isButtonDown())
  2. {
  3.    // Captuer la position de la souris
  4.    CPoint  pt = GetMousePosition();
  5.    if(PtInRect(Pt, MyRect))
  6.    {
  7.    }
  8. }


 
J'ai bien hérité les fonctions OnLButtonUp, OnLButtonDown, OnMouseMove mais le problème est qu'un evenement n'est envoyé que si la souris bouge.
 
Je crée une espèce de fusion entre une ListBox Normal et une ListCtrl+report+headers.
 
Si click enfoncé et que le curseur sort du control, alors je fais défiler la liste jusque qd le bouton est relâché (ca marche mais uniquement qd la souris bouge, ce qui n'est pas du tout interessant dans mon cas).
 
Merci de votre aide...

mood
Publicité
Posté le 19-04-2003 à 05:55:23  profilanswer
 

n°367095
Konar
Posté le 19-04-2003 à 12:20:01  profilanswer
 

soit plus clair, la c'est trop incomprehensible.
 
juste un truc : ca depend de ce que IsButtonDown() fait, mais en theorie faut eviter ce genre de choses, pasque tant que tu restes dans le while et si ce dernier est dans le thread principal, bah tu bloques tous tes autres handlers.

n°367418
iS@mi
Resistance is futile !
Posté le 20-04-2003 à 02:11:13  profilanswer
 

Konar a écrit :

soit plus clair, la c'est trop incomprehensible.
 
juste un truc : ca depend de ce que IsButtonDown() fait, mais en theorie faut eviter ce genre de choses, pasque tant que tu restes dans le while et si ce dernier est dans le thread principal, bah tu bloques tous tes autres handlers.


 
En faite, j'essaie d'importer sur PC une série de travaux donc certains controles que j'avais développés sur Mac.
 
Lorsque tu sorts d'une listcontrole normal tout en restant avec le click gauche enfoncé, ta liste défile automatiquement pour te montrer les éléments du bas ou haut qui en temps normal pour les voire, tu aurais dû chipoter au ControlBar de la listbox.
 
Le problème est que les choses sont légèrement différentes sur PC que sur Mac.
 
Sur mac qd un clickdown était effectué, je recevais l'appel et je gérais tout moi même à partir de là :
 

Code :
  1. pascal ControlPartCode ListBoxPaneHitTestProc(ControlRef theControl, Point where)
  2. {
  3.   while(!isButtonDown())
  4.   {
  5.     // 1 Vérifie où le click s'est passé
  6.     // 2 Valide et dessine la liste avec les nv paramètres  
  7.     //   dans mon buffer.
  8.     // 3 Affiche le tout dans la fenêtre., donc sans passer par
  9.    // OnPaint et compagnie.
  10.   }
  11.   // Ici tout revenait à la normal...
  12. }


 
Sur PC, je dois créer une variable de type BOOL et la true fier  :D qd ButtonDown est appelé et la false ier qd ButtonUp est appelé.
Pour les mouvements, tous ce passe dans MouseMove mais comme sont nom l'indique, ce n'est appelé que qd la souris bouge.
 
Donc qd mon curseur sort de la liste, la liste défile uniquement qd le curseur bouge (je veux que ca continue à bouger sans mouvement).
 
Cela dit, j'ai une astuce, utiliser OnTimer mais c'est vachement bricolage.
 
Voilà...


Message édité par iS@mi le 20-04-2003 à 02:14:11
n°367419
iS@mi
Resistance is futile !
Posté le 20-04-2003 à 02:18:38  profilanswer
 

Cela dit, j'ai remarqué que le MFC Grid control de Chris Maunder regroupait certaines fonctions que j'ai besoin d'introduire dans ma ListCtrl spéciale.
Je pense trouver mon bonheure là dedans.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [MFC] Mouvement de la souris...

 

Sujets relatifs
[MFC] recuperer un ptr sur Doc dans CxxxApp[JS] Position relative de la souris par rapport a un rectangle ???
[MFC ] [Resolu] clique sur CLIstCtrlProgress bars [MFC C++]
Probleme fichier + MFCMFC appli qui plante
Faire fonctionner un programme MFC/C++ dans la zone de notificationMFC (C++)
[MFC] CList et class helpersou faire l'initialisation ? (MFC inside)
Plus de sujets relatifs à : [MFC] Mouvement de la souris...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR