Développeurs, Développeuses,
J'ai un petit souci avec mon appli.
Dans une SDI, je crée plusieurs splitteurs et plusieurs vues avec le code suivant
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
27
28
29
30
31
32
33
34
35
36
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) 
{
	// création du splitter de base
	if (!m_wndSplitter.CreateStatic(
		this,
		2,				// ligne
		1))				// colonne
		return FALSE;
	// création de la vue
	if (!m_wndSplitter.CreateView(0, 0,
		RUNTIME_CLASS(CFormRXD), CSize(0, 300), pContext))
		{
			TRACE0("Pb a la creation du 1er splitter \n");
			return FALSE;
		}
 
	// création du 2eme splitter
	if (!m_wndSplitter2.CreateStatic(
		&m_wndSplitter,						// la fenetre parent est le 1er splitter
		1, 3,								// 1 ligne, 3 colonnes
		WS_CHILD|WS_VISIBLE|WS_BORDER,		// WS_BORDER est necessaire
		m_wndSplitter.IdFromRowCol(1, 0) ))	// Splitter 2 dans 2eme ligne
		{
			TRACE0("Pb a la creation du splitter 2\n");
			return FALSE;
		}
 
	// création des vues du splitter 2
	if (!m_wndSplitter2.CreateView(0, 0, RUNTIME_CLASS(CFormTXD), CSize(250, 0), pContext) ||
		!m_wndSplitter2.CreateView(0, 1, RUNTIME_CLASS(CFormTrafic), CSize(250,0), pContext) ||
		!m_wndSplitter2.CreateView(0, 2, RUNTIME_CLASS(CEsComProView), CSize(0,0), pContext))
	{
		m_wndSplitter2.DestroyWindow();
		return FALSE;
	}
return TRUE;
Je voudrais supprimer la vue et le splitteur 0,1 du m_wndSplitter2.
J'ai donc écrit la fonction suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
void CMainFrame::OnTstSplit() 
{
	m_wndSplitter2.DeleteView(0,1);
	m_wndSplitter2.DeleteColumn(1);
	m_wndSplitter2.RecalcLayout();
}
Cette fonction génère une erreur "Debug Assertion failed" à l'exécution.
Si vous avez une idée, je vous en remercie d'avance.