Bonjour
je cherche a detruire une fenetre dans l'initDialog, mais le programme me renvoi une memory leack.
Y aurai t il un moyen de contourner ce probleme ?
Avez vous des idées pour me sortir de cette galere.
merci
@+++
Bonjour
je cherche a detruire une fenetre dans l'initDialog, mais le programme me renvoi une memory leack.
Y aurai t il un moyen de contourner ce probleme ?
Avez vous des idées pour me sortir de cette galere.
merci
@+++
salut comment tu fait pour la detruire ?
si c'est un fenetre allouee dynamiquement :
soit plus precis sur le contexte .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 pWnd->DestroyWindow(); delete pWnd;
![]()
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
Bonjour
dans la premiere fenetre :
et dans le initDialog de IDD_DIALOG2 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 void CEssaiWindowDlg::OnOK() { CWnd * pWnd; pWnd = new CDialog2; pWnd->Create(_T("STATIC"),"IDD_DIALOG2",WS_VISIBLE,CRect(0, 0, 100, 100),this,NULL); CDialog::OnOK(); }
voila comment je fait, et dans ce cas la, j'ai toujours une fuite sur le new ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 BOOL CDialog2::OnInitDialog() { CDialog::OnInitDialog(); SetIcon(m_hIcon, TRUE); SetIcon(m_hIcon, FALSE); this->DestroyWindow(); delete (this); return TRUE; }
des idées ?
merci bcp
@+++
Non !!! placer l'instruction dans la méthode OnDestroy plutôt que dans OnInitDialog !!this->DestroyWindow();
delete (this);
Que veux-tu faire exactement ?
Tout cela semble compliqué ; j'ai un exemple pour afficher des dialog modeless et avec communications de messages
quand tu fais une allocation dynamique il faut stocker le pointeur en tant que donnee membre et faire delete sur le destructeur de la classe .
sinon fuite memoire l'objet windows est bien detruit par la classe parent mais le new fait la classe pwnd couic !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 CEssaiWindowDlg::~CEssaiWindowDlg() { if(m_pWnd ) delete m_pWnd ; } void CEssaiWindowDlg::OnOK() { m_pWnd = new CDialog2; }![]()
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
et comme le fait remarquer Mat.M la sequence :
est un peu bizarre tu te coupes l'herbe sous le pied ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 BOOL CDialog2::OnInitDialog() { CDialog::OnInitDialog(); SetIcon(m_hIcon, TRUE); SetIcon(m_hIcon, FALSE); this->DestroyWindow(); delete (this); return TRUE; }
![]()
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
salut
en fait, il manque des bouts, mais en gros :
s'il se presente un autre message, on ne doit pas afficher un ecran mais un autre, et le test se fait dans ne fonction qui est appelé dans le InitDialog en fait.
enfin, c'etais pour savoir si quelqu'un avais deja fait....
c'est pas grave
@+++
Partager