Mfc souris

boubekeur_n Messages postés 2 Date d'inscription dimanche 12 mars 2006 Statut Membre Dernière intervention 30 novembre 2006 - 30 nov. 2006 à 13:15
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 - 2 déc. 2006 à 01:08
bonjour


excusez moi  de vous deranger mais j'ai un petit probleme et il me bloque pour mon projet;


je suis entrain de faire une interface a temps reel de 3 reservoires a eau sous VC++ .mon probleme est comme suit : je dois effectuer une tache A tant que le click gauche de la souris reste enfoncé ,mais j'arrive pas a le faire.


 voici mon code mfc :


void CCUVEView::OnLButtonDown(UINT nFlags, CPoint point)
{
  
while (click==true)            //click est une variable bool pour le test si  la touche enfoncé ou pas


    tacheA();




 CView::OnLButtonDown(nFlags, point);


}



void CCUVEView::OnLButtonUp(UINT nFlags, CPoint point)
{



click==false;
 CView::OnLButtonUp(nFlags, point);
 
}


 


mais le probleme c'est que je tombe toujours sur une boucle infinie.


j'espere que vous pourriez m'aider.


cordialement

4 réponses

Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
30 nov. 2006 à 13:51
Salut:

Je pense que tu n'as pas besoin de cette variable booléene car le message WM_LBUTTONDOWN n'est envoyé que si le bouton gauche de la souris est effectivement activé.

Le code peut être réécrit comme ça:

// Quand le bouton gauche est activé



void CCUVEView::OnLButtonDown(UINT nFlags, CPoint point)
{





    tacheA();
    CView::OnLButtonDown(nFlags, point);




}






void CCUVEView::OnLButtonUp(UINT nFlags, CPoint point)
{





    CView::OnLButtonUp(nFlags, point);
}
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
30 nov. 2006 à 19:22
// Tu peux garder ton flag mais etre plus propre avec :



if(  (
nFlags &&
 MK_LBUTTON) == MK_LBUTTON  )
{
   click = true;
}

// et dans OnLButtonUp

click = false;
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
30 nov. 2006 à 19:24
HEU PARDON C'EST LE & BINAIRE QU'IL FAUT METTRE !
0
Ombitious_Developper Messages postés 2333 Date d'inscription samedi 28 février 2004 Statut Membre Dernière intervention 26 juillet 2013 38
2 déc. 2006 à 01:08
Salut Yann:

Pourquoi utiliser un booléen?
Mais tu es déja dans la méthode ONLbutton càd que le bouton gauche de la souris à cette instant est en action.

Cordialement.
0
Rejoignez-nous