¿Cómo puede una aplicación MFC finalizarse sola?
-
08-06-2019 - |
Pregunta
¿Cuál es la forma correcta para que una aplicación MFC se cierre limpiamente?
Solución
Terminar programáticamente una aplicación MFC
void ExitMFCApp()
{
// same as double-clicking on main window close box
ASSERT(AfxGetMainWnd() != NULL);
AfxGetMainWnd()->SendMessage(WM_CLOSE);
}
Otros consejos
AfxGetMainWnd()->PostMessage(WM_CLOSE);
En apoyo de la respuesta de @ Mike, la razón para utilizar este método es activar la secuencia de apagado correcta.Especialmente importante para aplicaciones MDI/SDI porque brinda la posibilidad de que los documentos soliciten guardarlos antes de salir o cancelar la salida.
@Matt Noguchi, tu método evitará esta secuencia (que puede ser el efecto deseado, supongo, pero probablemente tengas problemas si estás provocando un cortocircuito en el desmontaje normal.
PostQuitMessage( [exit code] );
Si se trata de una aplicación basada en diálogos, puede hacerlo llamando a la función EndDialog().
Si se trata de una aplicación basada en SDI/MDI, puede llamar a DestroyWindow.Pero antes de eso, deberá realizar la limpieza usted mismo (cerrar documentos, desasignar memoria y recursos, destruir cualquier ventana adicional creada, etc.).