Combien peut-on créer de HBRUSH sous Windows 2000 ou XP?
Je viens de passer 2 heures à débugger un programme qui avait un
comportement étrange:
Au lieu de repeindre le fond de la fenetre de l'application, il
repeignait le fond d'écran (ce qui n'était absolument pas le but) et les
menus associés à l'application apparaissaient à partir du coin supérieur
gauche de l'écran (et non de la fenêtre).
Me suis alors dit que je devais écraser le handler de ma fenetre et que
je devais taper par inadvertance dans celui du fond d'écran (je savais
même pas qu'on pouvait)... et j'ai perdu mon temps.
J'ai fini par réaliser qu'en fait une erreur de copier coller m'avait
conduit à créer 2 fois le même HBRUSH (par un CreateSolidBrush)dans une
fonction qui était appelé 10000 fois (à la louche) ... et que du coup
une des deux HBRUSH n'était pas effacé à la sortie de la fonction (un
seul DeleteObject).
M'étonne pas que ca bugge, mais le résultat du bug est relativement
surprenifiant non?