SetTimer()

Signaler
Messages postés
5
Date d'inscription
mardi 17 avril 2007
Statut
Membre
Dernière intervention
26 mai 2007
-
Messages postés
3
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
29 juillet 2008
-
 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

Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
22
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);
   }
}
Messages postés
793
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
10 février 2021
8
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
Messages postés
149
Date d'inscription
mercredi 28 mars 2007
Statut
Membre
Dernière intervention
17 mai 2007
1
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.
Messages postés
3
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
29 juillet 2008

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.