BertaNd
Messages postés9Date d'inscriptionmardi 19 juillet 2005StatutMembreDernière intervention17 août 2005
-
2 août 2005 à 23:53
racpp
Messages postés1910Date d'inscriptionvendredi 18 juin 2004StatutModérateurDernière intervention14 novembre 2014
-
3 août 2005 à 15:35
salut
c'est assez compliqué a expliquer donc je met une source, ca parle mieux !
(API win32)
tout le tralala de la creation de la fenetre etc...
TranslateMessage(&msg);
DispatchMessage(&msg);
// un des deux appelle le module d'en dessous (si j'ai bien compris...)
meech
Messages postés209Date d'inscriptionvendredi 11 avril 2003StatutMembreDernière intervention14 août 2007 3 août 2005 à 00:09
Salut,
En effet, pas tout compris...
En fait, il me semble que la fonction WinProc est chargée de traiter les évènements (quand on clique quelque part, qu'on déplace la fenêtre, qu'on appuie sur une touche, etc.).
Si tu souhaites conserver la valeur de i, il faudrait mieux que cette
variable soit déclarée de manière globale (en dehors de la fonction) et
non localement (dans la fonction).
En fait, essaie de placer ta déclaration int i
dans un fichier d'en-têtes (ou au-dessus de toutes tes fonctions), en
précisant éventuellement le mot-clef static... L'incrément de ton i devrait alors se réaliser correctement lors de chaque appel d'un évènement Win32.
#include <windows.h>
// déclaration variabale globale i.
int i = 0;
// fonction WinMain...
// fonction WinProc...
LRESULT CALLBACK WinProc(...)
{
// (!) ne pas déclarer de nouveau la variable i
switch(msg)
{
case WM_TIMER:
switch(i)
{
case 2:
i++;
case 3:
i++;
// (...)
}
}
}
J'espère avoir compris le but et t'avoir un peu aidé.
NB. Profites-en pour initialiser une bonne fois pour toutes cette variable à zéro (par exemple, au démarrage de l'application).
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 201917 3 août 2005 à 00:23
vi vi c'est bon Joky ainsi mais ce n'est qu'une variante de syntaxe pour éviter qu'on y retouche ailleurs dans le code (hors de la wndproc) sinon le compilo génèrera le même code que si on met i en var globale.