Salut,
Je faisais quelques petits tests.
Pour celà, j'ai créé un classe dérivée de CWnd. Et dans ma view principale, je déclare une instance de cette classe.
Sous un bouton de tests, je lance le code suivant:
Alors, je lance mon appli, et je regarde le nombre d'objets GDI. Je crée une première fois ma fenêtre en appuyant sur le bouton. Le nombre d'objets GDI augmente de 2. Je ferme la fenêtere créée. Le nombre d'objets GDI ne diminue pas de 2. (au contraire, il reste stable)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if (!m_wndTest.m_hWnd) m_wndTest.CreateEx(WS_EX_OVERLAPPEDWINDOW, AfxRegisterWndClass(NULL,NULL, NULL, NULL), "MyWnd", WS_VISIBLE, CRect(0,0,200,200), this, NULL);
Je rappuie sur le bouton pour crééer ma fenêtre et cette fois ci, le nombre d'objets GDI augmente de 5. En fermant la fenêtre, pas de diminution. Puis à chaque création, ce nombre augmente de 5... ad vitam eternam.
Bref, il y aune fuite de mémoire GDI dans mon programme.
Est ce normal? D'où vient elle? Puis je l'éliminer?
Partager