spiky31
Messages postés106Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention11 février 2008
-
30 sept. 2006 à 12:38
spiky31
Messages postés106Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention11 février 2008
-
30 sept. 2006 à 19:15
Bonjour
Je m'excuse si ca semble une question de debutant mais c'est la premiere fois que je dessine dans une fenetre windows :(
Je me suis rendu compte que le message WM_PAINT est envoyer a ma fenetre "tout le temps" (!!!) et ainsi m'oblige a redessiner cette fenetre chaque instant alors que j'en ai pas besoin. Est ce normal ? Et peut on supprimer cet effet qui me bouffe du temps CPU pour rien ?
spiky31
Messages postés106Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention11 février 2008 30 sept. 2006 à 16:01
Bon il semblerait que j'ai trouvé l'erreur, je la post au cas ou d'autres auraient le meme probleme que moi :
au lieu de faire :
HRESULT CALLBACK wndProc(....)
{
switch (message)
{
....
case WM_PAINT :
... // on dessine
return 0;
.....
}
}
j'ai fait :
HRESULT CALLBACK wndProc(....)
{
switch (message)
{
....
case WM_PAINT :
... // on dessine
return DefProcWindow(...);
.....
}
}
et la tout va bien.
La seule chose que je ne comprend pas c'est que dans la MSDN ils disent bien que l'appli doit retourner 0 apres le traitement du message WM_PAINT mais bon ca marche c'est le principal.
BruNews
Messages postés21041Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 30 sept. 2006 à 19:12
C'est tout à fait certain, c'est aussi le rôle du couple BeginPaint() EndPaint(), on n'a pas à valider la zone soi-même.
Il y a certainement un prob de conception dans ton prog, faut faire gaffe à la réentrance des messages.