Bonjour,
Suite à mon précédent message, j'utilise une fenêtre créée sans ressources comme montré dans le post-it FAQ.
Mon problème est que je n'arrive pas à utiliser ma nouvelle classe de fenêtre comme variable membre de mon interface générale.
En local, ça fonctionne :
En variable membre ça plante quand on essaie d'ouvrir la fenêtre pour la deuxième fois :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 ///////////////////////////////////////////////////////////////////////// CImageBrowser.cpp ///////////////////////////////////////////////////////////////////////// void CImageBrowser::OnRButtonDown(UINT nFlags, CPoint point) { [...] CCheckClassesDlg dlg; dlg.ReadDirectory(m_ImageDirectory); dlg.SetCheckClassesDlg(0,0,150,120,"Check visible classes",this); dlg.DoModal(); [...] CStatic::OnRButtonDown(nFlags, point); [...] }
Le plantage a lieu au niveau d'InitModalIndirect() dans la fonction SetCheckClassesDlg(), utilisée pour initialiser la fenêtre.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 ///////////////////////////////////////////////////////////////////////// CImageBrowser.h ///////////////////////////////////////////////////////////////////////// class CImageBrowser : public CStatic { [...] private: CCheckClassesDlg dlg; [...] } ///////////////////////////////////////////////////////////////////////// CImageBrowser.cpp ///////////////////////////////////////////////////////////////////////// void CImageBrowser::OnRButtonDown(UINT nFlags, CPoint point) { [...] dlg.ReadDirectory(m_ImageDirectory); dlg.SetCheckClassesDlg(0,0,150,120,"Check visible classes",this); dlg.DoModal(); [...] CStatic::OnRButtonDown(nFlags, point); [...] }
ReadDirectory() initialise une structure interne à la classe de la fenêtre.
Le problème me donne l'impression qu'il manque une désallocation ou quelque chose comme ça mais je n'arrive pas à trouver où.
Partager