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 :
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);
[...]
}
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
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);
[...]
}
Le plantage a lieu au niveau d'InitModalIndirect() dans la fonction SetCheckClassesDlg(), utilisée pour initialiser la fenêtre.

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ù.