Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

Vous n'avez pas encore de compte Developpez.com ? L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Developpez.com

C++

Choisissez la catégorie, puis la rubrique :

logo
Sommaire > Classes Fenêtres et FrameWork > Fermeture Fenetres
        Comment fermer l'application par un message ?
        Comment fermer une View par un message ?
        Comment intercepter la fermeture de l'application ?
        Comment empêcher une fenêtre MDI de se fermer ?



Comment fermer l'application par un message ?
auteur : Farscape

AfxGetMainWnd()->PostMessage(WM_SYSCOMMAND,SC_CLOSE,0);

Comment fermer une View par un message ?
auteur : Farscape
A partir de la view on envoie le message suivant à l'objet l'objet parent de la classe CMDIChildWnd :

GetParentFrame()->PostMessage(WM_SYSCOMMAND,SC_CLOSE,0);


Comment intercepter la fermeture de l'application ?
auteur : Farscape
II faut intercepter le message SC_CLOSE au niveau de la classe CMainFrame :

void CMainFrame::OnSysCommand(UINT nID, LPARAM lParam) 
{
    // TODO: Add your message handler code here and/or call default
    // Test sur la fermeture de l'application
    if(nID==SC_CLOSE)
   {
     // tests pour savoir si OK
     //????????..
     return ; // pas de fermeture
   }
   CMDIFrameWnd::OnSysCommand(nID, lParam);
}

Comment empêcher une fenêtre MDI de se fermer ?
Créé le 22/01/2007[haut]
auteur : Farscape
Le code ci-dessous grise la croix et le menu en même temps:

// exemple a partir de la view.
CMenu *pSysMenu =GetParentFrame()->GetSystemMenu(FALSE);
ASSERT(pSysMenu != NULL);

pSysMenu->EnableMenuItem(SC_CLOSE,MF_BYCOMMAND  |MF_GRAYED   );





Consultez les autres F.A.Q.


Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2004 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.

Contacter le responsable de la rubrique C++

Partenaire : Hébergement Web