IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Empécher une fenètre MDI de se fermer [Fait]


Sujet :

MFC

  1. #1
    Membre éclairé Avatar de vanitom
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 327
    Par défaut Empécher une fenètre MDI de se fermer
    Salut,

    J'ai une fenètre MDI et je voudrais empécher l'utilisateur de fermer cette fenêtre.

    Je veux donc désactiver uniquement la croix en haut à droite ainsi les commandes de fermetures de la fenêtre via la menu en haut à gauche.

    Une idée ?

    J'ai essayé de chercher à partir de l'option WS_MINIMIZEBOX mais rien n'y fait. Impossible de trouver un truc concret.

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    voir faq:
    http://c.developpez.com/faq/vc/?page...DetectCloseApp
    A faire dans ta MDIChild.

  3. #3
    Membre éclairé Avatar de vanitom
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 327
    Par défaut
    Ok compris pour empêcher vraiment la fermeture.

    Mais comment puis-je griser la croix de fermeture, et la commande de fermeture du menu de la MDIChild

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,

    le code ci-dessous grise la croix et le menu en meme temps:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // exemple a partir de la view.
    CMenu *pSysMenu =GetParentFrame()->GetSystemMenu(FALSE);
    ASSERT(pSysMenu != NULL);
     
    pSysMenu->EnableMenuItem(SC_CLOSE,MF_BYCOMMAND  |MF_GRAYED   );

  5. #5
    Membre éclairé Avatar de vanitom
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 327
    Par défaut
    Je ne suis pas entierement d'accord avec ce que tu dis "Farscape".

    En fait, quand on utilise ce code SC_CLOSE, l'élément désactivé est effectivement "FERMER" ou "QUITTER". Mais il existe une particularité.

    Sur mon Windows, j'ai un programme "PowerMenu" qui insère dans le menu standard de Windows des éléments supplémentaires ( Par exemple : "Toujours dessus", Niveau de transparence, Niveau de priorité, ... ).

    Et donc sur ma machine, si j'utilise le code SC_CLOSE. Ce n'est pas le "FERMER" qui est désactivé. Mais un des éléments précédement cité.

    Donc pour être de désactiver le bon élément "FERMER" j'ai fais une recherche sur le "Ctrl+F4" ou "Alt+F4". Et la normalement, je suis sûr du resultat.

    Mais dans la plus part des cas, ce code est correct.

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    Citation Envoyé par vanitom
    Je ne suis pas entierement d'accord avec ce que tu dis "Farscape".

    En fait, quand on utilise ce code SC_CLOSE, l'élément désactivé est effectivement "FERMER" ou "QUITTER". Mais il existe une particularité.

    Sur mon Windows, j'ai un programme "PowerMenu" qui insère dans le menu standard de Windows des éléments supplémentaires ( Par exemple : "Toujours dessus", Niveau de transparence, Niveau de priorité, ... ).

    Et donc sur ma machine, si j'utilise le code SC_CLOSE. Ce n'est pas le "FERMER" qui est désactivé. Mais un des éléments précédement cité.

    Donc pour être de désactiver le bon élément "FERMER" j'ai fais une recherche sur le "Ctrl+F4" ou "Alt+F4". Et la normalement, je suis sûr du resultat.

    Mais dans la plus part des cas, ce code est correct.
    salut,
    hum ,c'est a mon tour de n'etre pas entierement d'accord avec toi.
    la commande SC_CLOSE est standard ,si ton programme a bidouillé le menu commande systeme ce n'est pas la normalité ....
    certes en recherchant le texte on obtient le bon id.


  7. #7
    Membre éclairé Avatar de vanitom
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 327
    Par défaut
    Je viens de le retester, et là c'est le drame. Ta méthode marche.
    Je viens de me planter grâve.

    Ba alors, je ne me souviens pas de ce j'avais testé.

Discussions similaires

  1. Empêcher une fenêtre WIN32 de se fermer.
    Par F-fisher dans le forum Windows
    Réponses: 9
    Dernier message: 06/08/2009, 18h38
  2. Réponses: 5
    Dernier message: 14/01/2009, 17h49
  3. Réponses: 1
    Dernier message: 21/12/2007, 21h27
  4. [VBA-EXCEL]--Empêcher une fenêtre de se fermer
    Par gantec dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/04/2007, 11h17
  5. empêcher une fenêtre de perdre le focus (MDI)
    Par eponette dans le forum Composants VCL
    Réponses: 4
    Dernier message: 17/08/2005, 16h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo