répéter une action sans bloquer l'application [VISUAL C++] - Programmation
Marsh Posté le 12-05-2001 à 11:21:34
Regarde du coté du message WM_TIMER et de la fonction setTimer
Marsh Posté le 12-05-2001 à 11:28:33
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.
Marsh Posté le 12-05-2001 à 11:35:40
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]
Marsh Posté le 12-05-2001 à 11:46:03
hum hum.
tout le monde utilise pas MFC comme toi.
fait une thread séparé c encore mieux
Marsh Posté le 12-05-2001 à 11:58:02
Je te fait la version API windows directe alors :
La partie dans la boucle de traitement des messages :
Code :
|
et dans la méthode de processus messages :
Code :
|
[edit]--Message édité par kadreg--[/edit]
Marsh Posté le 12-05-2001 à 11:02:45
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.