begin process at 2010 02 10 11:16:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Autre

 > 

message WM_PAINT


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

message WM_PAINT

samedi 30 septembre 2006 à 12:38:36 | message WM_PAINT

spiky31

Membre Club

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 ?

merci d'avance

samedi 30 septembre 2006 à 12:46:32 | Re : message WM_PAINT

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
WM_PAINT est envoyé par le système quand il y a besoin et non tout le temps.

ciao...
BruNews, MVP VC++
samedi 30 septembre 2006 à 12:54:11 | Re : message WM_PAINT

spiky31

Membre Club

OK donc c'est moi qui ai merdé quelque part dans mon code. Je vais essaye de trouver mon erreur. Merci pour la reponse si rapide.

samedi 30 septembre 2006 à 13:05:15 | Re : message WM_PAINT

deck_bsd

Membre Club
Réponse acceptée !
Oui , cela vient de toi, car comme l'a dit BruNews, WM_PAINT est appelé seulement lorsque la fenêtre à besoin d'être re-dessiné.

++
deck_bsd

[ [ Lien ]]
samedi 30 septembre 2006 à 16:01:09 | Re : message WM_PAINT

spiky31

Membre Club

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.

samedi 30 septembre 2006 à 16:29:11 | Re : message WM_PAINT

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
NON et NON, exemple à ne pas suivre.

Faudrait surtout voir ce qu'il y a dans ton WM_PAINT parce que pas normal du tout, devrait toujours retourner 0.

ciao...
BruNews, MVP VC++
samedi 30 septembre 2006 à 16:53:42 | Re : message WM_PAINT

spiky31

Membre Club
Réponse acceptée !

Ca y est j'ai tout compris !! ouf !!!

J'avais tout simplement oublier de valider ma zone de dessin

Grace a "ValidateRect(hwnd,NULL);" tout fonctionne bien et je retourne bien zero.

Toutes mes excuses pour le post precedent, je sais pas pourquoi ca marchait mais brunews dit exemple a ne pas suivre donc encore une fois excuser moi.

samedi 30 septembre 2006 à 18:26:07 | Re : message WM_PAINT

aardman

Membre Club
Salut,
En théorie, tu n'a pas besoin de valider la zone de dessin, c'est BeginPaint() qui le fait.
samedi 30 septembre 2006 à 19:12:24 | Re : message WM_PAINT

BruNews

Administrateur CodeS-SourceS
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.

ciao...
BruNews, MVP VC++
samedi 30 septembre 2006 à 19:15:02 | Re : message WM_PAINT

spiky31

Membre Club

j'ai utiliser BeginPaint et EnPaint et ca marche merci


Cette discussion est classée dans : message, fenetre, temps, wm, paint


Répondre à ce message

Sujets en rapport avec ce message

WM_MOUSEWHEEL version 2 [ par watashi_blao ] j'intercepte pas le message WM_MOUSEWHEEL dans ma fenetre fille (qui gère opengl. je veux intercepter le message dans la fonction de traitement des me WM_PAINT [ par Ensias ] Salut tous le monde , je voudrais savoir si le message WM_PAINT est envoyé indifiniment à la fenetre, ou bien suite à des evenements precis si c'est l Composant Perso [ par Joky ] Hey Bonjour les gens ! J'ai un soucis :) Donc voila j'ai créer un composant drButton qui crée un bouton en forme de flêche soit qui se dirige vers la Message WM_NCLBUTTONUP [ par _michel ] J'ai un problème dans la CallBack de ma fenêtre : je n'arrive pas à receptionner les messages WM_NCLBUTTONUP, qui sont envoyés à chaque fois que le bo Timer [ par youri01 ] salut,j'ai un ptit problème avec le timer je n'arrive pas à le faire fonctionner. dans la "WindowsProcedure" je mets :switch (message)              {  Win32 - Message WM_LBUTTONUP non reçu [ par nico255 ] Bonsoir, mon programme en C Win32 est en tray-icon et s'inspire fortement de la source CONTROLE-VOLUME-OSD-WIN32 (ID=38949) - une CreateWindowEx WS_ WM_MOUSEWHEEL [ par watashi_blao ] dsl mais j'ai un problème avec ce message ... j'inclue windows.h et winuser.h...mais WM_MOUSEWHEEL... est undeclared identifier.si quelqu'un sait ce q send message [ par unionx ] bonjourest ce que je peux caché une fenetre avec la fonction SendMessage ? si c'est oui comment je vais faire ?je connais la fonction ShowWindow mais comment choper un message WM_KEYDOWN d'une Ccombobox? [ par papipsycho ] Bonjour comment choper un message WM_KEYDOWN d'une CcomboboxMerci.--==Papi Psycho==-- temps d'acces de lecture sur socket [ par LaTatadu91 ] Bonjour,Voila je suis confronté a un probleme sur un programme de communications via tcp/ip.Mon probleme est lié au fait que j'ai plusiseurs threads e


Nos sponsors


Sondage...

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,655 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales