Comment rafraichir une fenetre à intervalle régulier ? [Résolu]

KissyFroth 38 Messages postés mardi 16 août 2005Date d'inscription 7 avril 2007 Dernière intervention - 17 déc. 2005 à 14:37 - Dernière réponse : KissyFroth 38 Messages postés mardi 16 août 2005Date d'inscription 7 avril 2007 Dernière intervention
- 17 déc. 2005 à 21:37
Mon probleme est simple : j'avai concu un programme avec une interface graphique toute simple dans un projet Win32 Application. Mais tout s'est compliqué losque j'ai voulu rajouter la gestion du temps dans mon prog: étant donné que le programme "boucle" sur le callback de la fenetre dans l'attente d'un évènement, comment faire pour prendre en compte le temps "comme étant un évenement" sans pour autant "court circuiter" completement le callback (auquel cas on n'est obligé de sortir du programme par un ctrl-alt-suppr en cas de probleme ou tant que l'heure declencheur d'évènement n'a pas été atteinte )

Autrement dit y-a-t il un moyen de forcer la fenetre à se refraichir à intervalle régulier ?

répondez moi vite svp
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Galmiza 573 Messages postés samedi 16 novembre 2002Date d'inscription 9 avril 2008 Dernière intervention - 17 déc. 2005 à 14:48
3
Merci
SetTimer() pour créer un timer où tu précise l'intervalle de temps.



Et pour récupérer l'évenement (émis à intervalles réguliers):

case WM_TIMER:

{

InvalidateRect(hWnd, NULL, 0); // pour rafraichir toute la
fenetre dont le handle est hWnd (en fait un message WM_PAINT est lancé)

}

break;

Merci Galmiza 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Galmiza
Meilleure réponse
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 17 déc. 2005 à 14:49
3
Merci
Normalement elle se redessine quand cela est nécessaire.
Si tu veux le faire parce que des données on changé, tu peux utiliser InvalidateRect. Pour la notion de temps, tu utilises un Timer (voir la fonction SetTimer). A chaque message WM_TIMER, tu fais InvalidateRect(hWnd, 0, 1);

Merci vecchio56 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de vecchio56
KissyFroth 38 Messages postés mardi 16 août 2005Date d'inscription 7 avril 2007 Dernière intervention - 17 déc. 2005 à 21:37
0
Merci
Merci pour vos réponses. Ca marche nickel. Petite précision : l'intervalle de tps est le 3eme parametre de la fonction UINT SetTimer(HWND hwnd,UINT nIDEvent,UINT uElapsed,TIMERPROC lpTimeFunc)
Commenter la réponse de KissyFroth

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.