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 21040 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 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
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
Rejoignez-nous