Bonjour a tous
Je suis entrain de developper une appli SDI sous visual C++
Pour diviser ma fenetre principale, j'ai utilisé des splitters (au nombre de 3)
j'ai donc 3 a attributs de types splitter dans ma classe MAinFrame.
Voici le code de la fonction OnCreateClient de Main Frame
------------------------------------------------------------------------
// Découpage horizontal de la fenêtre en 2 zones
if(!m_wndSplit1.CreateStatic(this,2,1))
{ TRACE0("Failed to create splitter bar 1");
return FALSE; // failed to create
}
// Affectation de la vue d'execution dans la zone du bas
if(!m_wndSplit1.CreateView(1,0,RUNTIME_CLASS(VueCR),CSize(10,10),pContext))
{ return FALSE;
}
// Découpage vertical de la zone du haut
if(!m_wndSplit2.CreateStatic(&m_wndSplit1,1,2,WS_CHILD|WS_VISIBLE|WS_BORDER,m_wndSplit1.IdFromRowCol(0,0)))
{ TRACE0("Failed to create splitter bar 2");
return FALSE; // failed to create
}
// Affectation de la vue Scenario dans la zone haut gauche
if(!m_wndSplit2.CreateView(0,1,RUNTIME_CLASS(VueCR),CSize(10,10),pContext))
{ return FALSE;
}
// Dernier découpage horizontal
if(!m_wndSplit3.CreateStatic(&m_wndSplit2,2,1,WS_CHILD|WS_VISIBLE|WS_BORDER,m_wndSplit1.IdFromRowCol(0,0)))
{ TRACE0("Failed to create splitter bar 3");
return FALSE; // failed to create
}
// Affectation des 2 vues restantes
if(!m_wndSplit3.CreateView(0,0,RUNTIME_CLASS(VueInformations),CSize(10,10),pContext) ||
!m_wndSplit3.CreateView(1,0,RUNTIME_CLASS(VueScenario),CSize(10,10),pContext) )
{ return false;}
m_wndSplit3.SetRowInfo(0,150,0);
m_wndSplit2.SetColumnInfo(0,250,0);
m_wndSplit1.SetRowInfo(0,320,0);
SetActiveView((CView*)m_wndSplit2.GetPane(0,1));
// cette ligne je sais pas trop si elle est utile ???
return TRUE;
------------------------------------------------------------------------
Le souci, c qu'a partir de la classe document,
j'ai besoin d'acceder a une des vues correspondant a une des zones du spliter
JE n'y parvient pas !!
J'ai essayé ca :
------------------------------------------------------------------------
MainFrame * mwnd = ((MainFrame*)AfxGetApp()->m_pActiveWnd);
VueInformations * vueInfo = (VueInformations *)mwnd->m_wndSplit3.GetPane(0,0);
------------------------------------------------------------------------
mais je prend une debug asssertion failed
winsplit.cpp sur la 2eme instruction
D'ou vient le pb ?
Que faut il faire ?
Est ce necessaire de definir des vues actives ...
Merci d'avance pour votre aide