SetTimer()

niou42 Messages postés 5 Date d'inscription mardi 17 avril 2007 Statut Membre Dernière intervention 26 mai 2007 - 8 mai 2007 à 15:48
duracipatie Messages postés 3 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 29 juillet 2008 - 16 juil. 2007 à 12:18
 Bonjour

voila j'aimerais mettre en place un timer ( et donc aussi un kill timer ) en c++
j'ai un bouton dans une mfc qui contient ce code :

while(true)
{
    for(int i=0;i<11;i++)
    {
        // j'incrémente la valeur dans mon EditBox
       valeur++;
    }
}

Ou faut il que je mette en place mon timer pour éviter que mon ihm ne se bloque ??

Merci d'avance !!

4 réponses

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
8 mai 2007 à 16:29
Le timer ne t'aidera pas ici, tu fais une boucle infini.
Il faut que tu mettes un critère de sortie de boucle, par exemple :

while(true)
{
    for(int i=0;i<11;i++)
    {
       valeur++;
    }

     if( valeur > 100 ) break;
}

Sinon avec un timer, tu aurais ce code dans le msg ON_WM_TIMER()et le critere serait :

// quelquepart :
INT_PTR nMonTimer = SetTimer(...);

void CTaClasse::OnTimer(UINT nIDEvent)
{
   if( nIDEvent == nMonTimer )
   {
      valeur++;
      if( valeur > 100  ) 
          KillTimer(nIDEvent);
   }
}
0
cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 8
9 mai 2007 à 11:33
il faut créer une tache pour ta boucle sinon par d'interaction avec l'interface. Le timer ne t'aidera pas a moins de faire une seule action dans la fonction du timer avec une condition qui dit qu'il faut arrêter le timer. J'utilise desfois dans les boucles( avec un modulo de 100 ou 1000) la fonction
while(peekmessage )
{
   SendMessage ; // on peut filtrer le type de message que l'on veut exécuter et le remttre dans la file ou non
}
qui permet d'avoir des interactions et des rafraichissement de l'interface

louis14
0
emmatopiak Messages postés 149 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 17 mai 2007 2
9 mai 2007 à 15:28
Salut,
 Il faudrait que tu  lance le calcul dans un thread différent, comme ça ça devrait pas bloquer :p

Une autruche ne se cuit pas aux petits lardons.
0
duracipatie Messages postés 3 Date d'inscription jeudi 24 mai 2007 Statut Membre Dernière intervention 29 juillet 2008
16 juil. 2007 à 12:18
Bonjour et bien a vous tous.

Mon probleme c'est que apres que j'insere le timer je connais pas le 3eme prototype de la fonction setTimer(ok,ok,c'est koi?).
je sais kon peux le mettre a null pour mettre le timer au file d'attente mais comment l'apelle alors la aucune idee.
Merci si quelqu'un peux m'aider.
0
Rejoignez-nous