Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/04/2005, 20:38
Avatar de Nietzsche
Nietzsche
 
Fecha de Ingreso: enero-2005
Ubicación: MALAGA-ESPAÑA
Mensajes: 228
Antigüedad: 20 años, 2 meses
Puntos: 0
La solucion que he encontrado es añadir al menu una entrada para cambiar de vista y trabajar con las 2 vistas, una para ver la BD y otra para modificar: BioLib3View y AddModView.
El problema ahora lo tengo al compilar. Recibo el siguiente mensaje: "Debug Assertion Failed!"
Y al depurar la aplicación veo que falla en la línea:
ASSERT(cs.style & WS_CHILD);
del fichero viewcore.cpp correspondiente a la MFC.

La funcion que uso para cambiar de vista es:

void CMainFrame::SwitchToView(eView nView)
{
CView* pOldActiveView = GetActiveView();
CView* pNewActiveView = (CView*) GetDlgItem(nView);
if (pNewActiveView == NULL) {
switch (nView) {
case VER:
pNewActiveView = (CView*) new BioLib3View;
break;
case TRABAJAR:
pNewActiveView = (CView*) new AddModView;
break;
}
CCreateContext context;
context.m_pCurrentDoc = pOldActiveView->GetDocument();
pNewActiveView->Create(NULL, NULL, WS_BORDER,
CFrameWnd::rectDefault, this, nView, &context);
pNewActiveView->OnInitialUpdate();
}
SetActiveView(pNewActiveView);
pNewActiveView->ShowWindow(SW_SHOW);
pOldActiveView->ShowWindow(SW_HIDE);
pOldActiveView->SetDlgCtrlID(
pOldActiveView->GetRuntimeClass() ==
RUNTIME_CLASS(BioLib3View) ? VER : TRABAJAR);
pNewActiveView->SetDlgCtrlID(AFX_IDW_PANE_FIRST);
RecalcLayout();
}

Muchas gracias.