CyberP
Messages postés283Date d'inscriptionmercredi 8 janvier 2003StatutMembreDernière intervention 4 juillet 2007
-
4 août 2003 à 16:47
fabiencpp
Messages postés18Date d'inscriptionjeudi 7 août 2003StatutMembreDernière intervention13 août 2003
-
13 août 2003 à 12:50
Dans un callback d'une fenêtre, j'ai inséré ce code :
case WM_PAINT:{
PAINTSTRUCT peindre;
HDC rect;
rect = BeginPaint(hWnd, &peindre);
Engine.drawfigure(rect, fig, true, true, false);
EndPaint(hWnd, &peindre);
break;
}
qui doit normalement appeler la fonction drawfigure de l'objet Engine qui fait partie de la classe engine2d (le paramètre fig est un objet "figure" propre à mon script).
Or, lorsque je compile et que je lance le programme, à chaque nouveau dessin (donc à chaque fois que le message WM_PAINT est envoyé), le programme plante en indiquant cette erreur :
"The value of ESP was not properly saved across a function call"
J'ai remarqué en faisant des tests que cette erreur ne se produit pas si la fonction appelée ne fait pas partie d'aucun objet.
Quelqu'un a-t-il une idée du problème ?
CyberP,
Celui qui dit que toute question a une réponse
cs_lahou
Messages postés41Date d'inscriptiondimanche 18 mars 2001StatutMembreDernière intervention 4 novembre 2003 4 août 2003 à 17:19
le probleme vient je pense de ton BeginPaint et de ton EndPaint, il ne faut pas que tu mettes "hWnd" comme premier paramètre de tes deux fonctions mais il faut mettre "rect", c'est à dire ton HDC
voila
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 4 août 2003 à 19:39
rect = BeginPaint ????????? quel rect !
hdc = BeginPaint(hWnd, &peindre); // donne un hdc !!!
maintenant si tu veux extraire l'unique rect a repeindre il se trouve dans ton PAINTSTRUCT qui est ici peindre.
Ensuite si continue, verifie si pas de malaise du cote declaration de drawfigure(), __stdcall ou non.
BruNews, ciao...
fabiencpp
Messages postés18Date d'inscriptionjeudi 7 août 2003StatutMembreDernière intervention13 août 2003 13 août 2003 à 12:50
DE tt facon son rect meme si il s'appel rect est du type HDC
Donc a mon avis il sait tres bien que c'est DeviceContext
il en a certain simplement besoin dans ca fonction DrawFigure.
Moi je pencherai plutôt vers un message WM_PAINT envoie avant meme que ton engine soit allouer, cela dit ce n'est pas un pointeur. On ne sait pas si c'est une variable global
ou si elle est alloué dans la fonction WndProc.
Enfin en tout cas verifie de ce coté la.
Maintenant sans le code complet difficile d'en dire plus