C/Visual C - Cerrar Vistas...

 
Vista:

Cerrar Vistas...

Publicado por Nelek (816 intervenciones) el 07/02/2007 12:47:32
Hola,

He logrado abrir diferentes vistas para el mismo documento. Ahora intento que al cerrar la "vista principal" las otras tambien se cierren, guardandose (si es preciso) los cambios. Pero me da problemas.

Da igual si lo hago por el CDoc::CloseDoc () o por el codigo siguiente:

void CTestDoc::CloseAllViews ()
{
CView* pView;
POSITION pos = GetFirstViewPosition ();

while (pos != NULL)
{
pView = GetNextView (pos);
pView->DestroyWindow ();

// Tambien he probado con
//CFrameWnd* pFrame = pView->GetParentFrame ();
//delete pFrame;
//o con
// pFrame->DestroyWindow ();
//o con
//CWnd* pWnd = pFrame->GetOwner ();
//pWnd->DestroyWindow ();
//o con
//pFrame->~CFrameWnd();
}
}

lo haga como lo haga me da un fallo de tipo: "Excepcion no contemplada en FPS.exe (MFC42D.dll): 0xC0000005 : Violacion de acceso" remitiendome al codigo siguiente (exactamente la linea donde he puesto "<<<-----")

LRESULT CWnd::Default()
{
// call DefWindowProc with the last message
_AFX_THREAD_STATE* pThreadState = _afxThreadState.GetData();
return DefWindowProc(pThreadState->m_lastSentMsg.message,
pThreadState->m_lastSentMsg.wParam, pThreadState->m_lastSentMsg.lParam); //<<<----
}

Lo curioso es que si pongo "CloseWindow" en lugar del "Destroy", no da fallos, simplemente me minimiza la ventana dentro del frame pero no se cierra (y tampoco me deja volver a abrirla).

Alguien me puede decir que me estoy dejando o haciendo mal?


Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder