Onepenar
Messages postés3Date d'inscriptionsamedi 15 décembre 2007StatutMembreDernière intervention 2 janvier 2009
-
2 janv. 2009 à 18:43
ed73
Messages postés276Date d'inscriptionlundi 8 septembre 2008StatutMembreDernière intervention15 avril 2013
-
3 janv. 2009 à 00:16
Bonjour,
je suis en train de faire une application visual c++de type document/view qui permet de peindre différentes formes sur l'écran. J'ai donc du utiliser la technique de double buffering afin d'éviter les scintillements. J'arrive donc bien a peindre sans scintillements, mais mon programme s'arrête systématiquement au bout de quelque temps avec une runtime error. Dans le debug je vois alors qu'il y a un probleme avec le m_hDC qui semble ne plus être reconnu au bout d'un moment:
Pour le double buffering, j'ai tout d'abord utlilisé le code fourni à cette adresse :http://www.codeproject.com/KB/GDI/flickerfree.aspx J'ai ensuite éssayé de l'implémenter directement dans ma méthode OnDraw() mais rien n'y fait.Je ne comprend pas pourquoi ca marche pendant un moment puis s'arrête brutalement.Problème de mémoire?
Quelqu'un aurait-il une idée pour me débloquer?
ed73
Messages postés276Date d'inscriptionlundi 8 septembre 2008StatutMembreDernière intervention15 avril 20132 2 janv. 2009 à 19:12
Bonsoir,
Il doit s'agir d'un problème de libération de ressource. Vérifie que pour chaque objet GDI créé, il y a bien un DeleteObject en fin de traitement, et bien sûr un DeleteDC ou EndPaint selon la méthode que tu utilises pour créer ton HDC.