Timer

Résolu
youri01
Messages postés
22
Date d'inscription
samedi 10 mai 2008
Statut
Membre
Dernière intervention
22 septembre 2008
- 28 mai 2008 à 20:32
BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
- 28 mai 2008 à 22:41
salut,
j'ai un ptit problème avec le timer je n'arrive pas à le faire fonctionner. dans la "WindowsProcedure" je mets :

switch (message)         
    {
        case WM_CREATE:
             SetTimer(hwnd, 100, 10000, (TIMERPROC) NULL);
             break;
        case WM_DESTROY:
            PostQuitMessage (0);     
            break;
        case WM_TIMER:
                         
             switch(wParam)
             {
                 case IDT_TIMER1:
                    MessageBox(hwnd,"message","titre",MB_ICONINFORMATION);
                    break;
             }
            
             break;

        default:                    
            return DefWindowProc (hwnd, message, wParam, lParam);
    }

normalement le code devrait fonctionner mais je sais pas, peut-être que j'ai loupé quelques choses. est-ce quelqu'un peut m'aider ou me filer un code simple pour créer un timer ? d'autre part est-ce qu'on peut créer un timer dans une application de type console (sans interface graphique) ??
merci d'avance. bonne journée

3 réponses

cs_jfrancois
Messages postés
482
Date d'inscription
vendredi 26 août 2005
Statut
Membre
Dernière intervention
5 décembre 2009
2
28 mai 2008 à 21:18
Bonsoir,

Est-ce que la constante IDT_TIMER1 vaut bien 100 ? C'est comme cela que ça fonctionne donc il vaut mieux éviter de mélanger les 2 écritures !

switch (message)          
{
   case WM_CREATE:
   SetTimer(hwnd,IDT_TIMER1,10000,(TIMERPROC)NULL);
   break;

   case WM_DESTROY:
   KillTimer(hwnd,IDT_TIMER1);
   PostQuitMessage (0);      
   break;

   case WM_TIMER:
   switch(wParam)
   {
      case IDT_TIMER1:
      MessageBox(hwnd,"message","titre",MB_ICONINFORMATION);
      break;
   }
   break;

   default:                     
   return DefWindowProc(hwnd,message,wParam,lParam);
}

Jean-François
3
SAKingdom
Messages postés
3212
Date d'inscription
lundi 7 novembre 2005
Statut
Membre
Dernière intervention
16 février 2009
15
28 mai 2008 à 21:16
100 est l'ID de ton timer.

wParam contient l'ID du timer ayant lancé le message WM_TIMER présentement traité.

IDT_TIMER1 vaut-il aussi 100 ?

"d'autre part est-ce qu'on peut créer un timer dans une application de type console (sans interface graphique) ??"

Oui mais il faudra tout de même une pompe à message.

C++ (@++)<!--
0
BruNews
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
28 mai 2008 à 22:41
Tout ceci sans perdre de vue qu'il est inutile de tester wParam si on ne crée qu'un seul timer sur la fenêtre.

ciao...
BruNews, MVP VC++
0