
11/04/2005, 20:38
|
 | | | 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. |