Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1141 connectés 

  FORUM HardWare.fr
  Programmation

  [VISUAL C++] répéter une action sans bloquer l'application

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VISUAL C++] répéter une action sans bloquer l'application

n°31046
warp
Posté le 12-05-2001 à 11:02:45  profilanswer
 

J'aimerais répéter une action régulièrement une action
(toutes les 10 secondes)
mais avec un sleep, je bloque toute l'application...ce qui est normal.
Je ne sais plus quelle commande utiliser et où la placer.
 
C'est une application graphique classique.

mood
Publicité
Posté le 12-05-2001 à 11:02:45  profilanswer
 

n°31047
kadreg
profil: Utilisateur
Posté le 12-05-2001 à 11:21:34  profilanswer
 

Regarde du coté du message WM_TIMER et de la fonction setTimer


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°31048
warp
Posté le 12-05-2001 à 11:28:33  profilanswer
 

Si je demande plus de détails.......j'exagère ?
 
En fait je n'ai plus écris d'applique Visual depuis bientôt 2 ans,
et je ne me souviens plus comment ça marche........
 
J'ai en effet vu dans mes notes que c'est de ça qu'il faut partir,
mais j'ai pas le courage d'aller tout relire.

n°31049
VisualC++
J'va y penser ...
Posté le 12-05-2001 à 11:35:40  profilanswer
 

Tout les objet derives entre autre d'un CWnd on acces a une fonction CWnd:: OnTimer(UINT nIDTimer)
 
Il te suffit de rajouter cette fonction (via classwizard) a ton objet et apres tu fais quand tu veux demarrer :
SetTimer(ID_TIMER, 10 * 1000);
 
ID_TIMER etant un identifiant qui te permettra de detecter quel timer est arrive a expiration, et 10 etant ton delai (a indique en milliseconde d'ou le 1000).
 
Apres dans la fonction OnTimer tu as un truc du genre
 
CWnd:: OnTimer(UINT nIDEvent) {
  if (nIDEvent == ID_TIMER) {
    // Ton code pour le traitement
  }
  else {
    CWnd:: OnTimer(nIDEvent);
  }
}
 
 
Edit : arg les smiley

 

[edit]--Message édité par VisualC++--[/edit]


---------------
VT ... Vaucluse / Vrille(euse :sarcastic: ) c'est pareil tant qu'il y a l'humour :D
n°31051
haahhahaha​ha
Posté le 12-05-2001 à 11:46:03  profilanswer
 

hum hum.
tout le monde utilise pas MFC comme toi.
fait une thread séparé c encore mieux


---------------
haahhahahaha == TheJackal
n°31052
kadreg
profil: Utilisateur
Posté le 12-05-2001 à 11:58:02  profilanswer
 

Je te fait la version API windows directe alors :
 
La partie dans la boucle de traitement des messages  :

Code :
  1. HWND hwndTimer;   // handle of window for timer messages  
  2. MSG msg;          // message structure   
  3.     while (GetMessage(&msg, // message structure  
  4.             NULL,           // handle of window to receive the message  
  5.             NULL,           // lowest message to examine  
  6.             NULL))          // highest message to examine     {   
  7.         // Post WM_TIMER messages to the hwndTimer procedure.   
  8.         if (msg.message == WM_TIMER)         {
  9.             msg.hwnd = hwndTimer;         } 
  10.         TranslateMessage(&msg); // translates virtual-key codes  
  11.         DispatchMessage(&msg);  // dispatches message to window     }


 
et dans la méthode de processus messages :

Code :
  1. case WM_TIMER:     
  2. switch (wParam) {
  3.          case IDT_TIMER1:
  4.             // Process the 10-second timer.
  5.                return 0; 
  6.         case IDT_TIMER2: 
  7.            // Process the 5-minute timer.  
  8.             return 0;   
  9. }
 

[edit]--Message édité par kadreg--[/edit]


---------------
brisez les rêves des gens, il en restera toujours quelque chose...  -- laissez moi troller sur discu !
n°31057
haahhahaha​ha
Posté le 12-05-2001 à 13:09:09  profilanswer
 

:ouch:  :ouch:  :ouch:  
barbare !
 :ouch:  :ouch:


---------------
haahhahahaha == TheJackal

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  [VISUAL C++] répéter une action sans bloquer l'application

 

Sujets relatifs
[visual . NET] remplir une datagrid!!![visual basic] encore un truc tout con que je trouve pas
Accès au CODE d'une application (Access 97)[visual basic] a priori tres simple....sof pour moi!
"Faire un debogage ?" depuis que Visual studio est installé !!!C'est facile de passer du VBA au Visual Basic ?
[VB] Killer une application dont on connait l'id[VB] Ouvrir une application et lui passer des commandes DDE
Distribution d'une application web (site)[VC++]Intercepter les messages recu par une autre application
Plus de sujets relatifs à : [VISUAL C++] répéter une action sans bloquer l'application


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR