Probleme de WM_PAINT

Probleme de WM_PAINT - C - Programmation

Marsh Posté le 12-11-2004 à 12:07:11    

Bonjour,
j'ai un projet à faire en API win32 et j'aimerais connaître la cause possible de mon erreur qui visiblement est liée au redessin de ma fenêtre.
Après plusieurs redessins de ma fenêtre ou de parties de ma fenêtre, il y a un léger blocage et le redessin ne fonctionne plus (trainées lors du déplacement, invisibilité des menus, ...).
je cherche juste qq'un qui aurait déjà eu ce type d'erreur pour savoir d'où elle peut venir.
Merci.

Reply

Marsh Posté le 12-11-2004 à 12:07:11   

Reply

Marsh Posté le 12-11-2004 à 13:55:31    

Tu ne dois pas libérer les ressources utilisées.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 12-11-2004 à 14:30:36    

Effectivement, je ne libère rien mais je ne vois pas quoi libérer. Par exemple, quand j'ai un LoadBitmap(..idBitmap..), il faut libérer la ressource employée ?
si tu pouvais me donner plus de détails ou un petit exemple, ca m'aiderait  :??:


Message édité par Le Mage le 12-11-2004 à 14:31:20
Reply

Marsh Posté le 12-11-2004 à 14:40:43    

A partir ou tu fais des accès aux objets de type GDI, faut désallouer, par exemple tu créer une font

Code :
  1. CFont

ou un pinceau

Code :
  1. CBrush

, faut appeller la fonction

Code :
  1. ReleaseObject()

ou même si tu fais appel au contexte avec

Code :
  1. GetDC()

faut ensuite faire

Code :
  1. ReleaseDC()


 
Pour vérifier si tu ne libère pas tes objets, affiche la colonne des objets GDI dans le gestionnaire de ressource, fait un rafraichissement, si ca augmente de facon significative (normalement si aucun objet bouton ou autre n'est créé, le nombre d'objet doit rester constant) c'est que c'est pas désallouer !!!

Reply

Marsh Posté le 12-11-2004 à 14:44:37    

aaah! OK
C'est bien possible puisque mon prog plante qu bout d'un moment, à force de faire des WM_PAINT.
Merci beaucoup!

Reply

Marsh Posté le 12-11-2004 à 14:48:07    

de rein  ;)

Reply

Marsh Posté le 12-11-2004 à 17:59:34    

Je rectifie pour le nom des fonctions, visiblement en API C donc pas avec les mfc il s'agit de la méthode DeleteObject(HGIOBJ);

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed