C/Visual C - cerrar mdi

 
Vista:

cerrar mdi

Publicado por Oaki (2 intervenciones) el 04/08/2005 23:02:27
tengo una ventana MDI con un objeto MenuStrip.
mi pregunta es la siguient. como hago para cerrar el MDIPadre desde un item del menu, por ejemplo, "Archivo..Cerrar"

como veran, soy novato++ o --.

gracias, de ante mano.
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

RE:cerrar mdi

Publicado por Fernando (18 intervenciones) el 07/08/2005 19:26:07
Si estas trabajando en Visual C++, y el menu que dices lo tienes dentro del formulario mdi, basta con que al item Salir le pongas el id ID_APP_EXIT, y no debes hacer nada mas, la aplicación se cerrará.

Si no, siempre puedes llamar al método DestroyWindow de la ventana MainFrame, pero lo que no recuerdo es en que orden se destruirán las ventanas interiores (supongo que main frame las destruirá primero a ellas invocando a sus respectivos destructores), con lo cual ten cuidado que no te quede memoria reservada sin liberar.

También podrias usar SendMessage(Hwnd, Message, 0, 0), donde hwnd es el manejador de la ventana qeu quieres cerrar (en este caso la MDI) y Message, es el mensaje WM_DESTROY.

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:cerrar mdi

Publicado por Oaki (2 intervenciones) el 08/08/2005 18:54:43
Gracias, ID_APP_EXIT me funciona.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:cerrar mdi

Publicado por fernando.gomez (1603 intervenciones) el 08/08/2005 21:33:28
En adición a lo que comentas. Si no mal recuerdo, PostQuitMessage hace el llamado a DestroyWindow en el orden indicado.

Este orden es el que sigue: por cada ventana (botones, marcos, cajas de texto...) se manda llamar primero al DestroyWindow de cada ventana hija, si existe, y finalmente se destruye ésta.

Sólo hay que tener cuidado en liberar bien los recursos que utilicemos, ya que en la mayoría de las ocasiones no se liberan, y puede traer consigo un memory leak.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar