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 :

[MFC] Fermer les Popup, mais pas l'appli


Sujet :

MFC

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 46
    Points : 30
    Points
    30
    Par défaut [MFC] Fermer les Popup, mais pas l'appli
    Existe t il en MFC un moyen de parcourir toutes les fenêtres ouverte du processus en cours, et de les fermer toutes, sauf une en particulier (genre la vue principale) ?



    Mon application nécessite un login qui attribue des droits (connexion avec un sqlserver). Mais l'utilisateur, via le menu, a la possibilité de se reloguer, auquel cas, je ferme les fenetres qu'il a ouvertes, je cache l'appli principale, et je lui remet la fenêtre de login.

    Le probleme étant qu'il peut faire ça n'importe quand, donc je ne peux pas identifier les fenêtres ouvertes (un avertissement lui indiquant qu'il perdra ce qui n'est pas sauvé, etc..)

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    on parle bien de fenetre popup ? pas de fenetre MDI ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2004
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 46
    Points : 30
    Points
    30
    Par défaut
    C'est un document SDI, avec une seule vue donc. Mais des fenêtres de paramétrage s'ouvre parfois

    ici, c'est la fenêtre principale qui a la main, suite à un clic sur un menu


    Le but est qu'elle ferme toutes les fenêtres ouvertes (celle qui ne sont pas Modal evidemment, sinon l'utilisateur aurait eu du mal à cliquer sur le menu de la fenêtre). Les fenêtres ont été ouverte avec un simple showwindow.

    Je ne suis qu'au début du projet, mais je préfère m'y prendre à l'avance pour bien les déclarer

    et en fait en écrivant, je me rend compte que je devrais les déclarer dans la Vue pour pouvoir faire le Create et ShowWindow... donc je pense créer un vecteur qui contient les fenêtres, et le parcourir en balançant un close sur les fenêtres, non ?
    (si je show/hide ces fenêtres, vu qu'il y en a au moins 13 selon mon schéma IHM, ça prendra trop de ressources pour rien, donc elles seront créé/détruite selon les besoins)

    bref, si garder un vecteur avec les CWnd* des fenêtres ouvertes est la solution, ça me va

    S'il existe un moyen de parcourir ces fenêtres comme on parcourt les contrôle d'une fenêtre (enfant, puis boucle sur suivant en gros), bah j'ai autant ne pas avoir un vecteur et utiliser ce qui existe

    voila voila

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    peut etre un truc comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    CWnd* pWnd=AfxGetMainWnd()->GetWindow(GW_CHILD);
    	while (pWnd != NULL)
    	{
    		if(pWnd->IsKindOf(RUNTIME_CLASS(CDialog)))
    		{
    			pWnd->PostMessage(WM_CLOSE);	
    		}
    		pWnd=pWnd->GetNextWindow();
    	}
    a tester

  5. #5
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    En API Win32, je faisais un petut EnumThreadWindows pour fermer toutes les fenêtres qui n'étaient pas celle que je ne voulais pas fermer. Ca ne doit pas être loin de la proposition de Farscape...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

Discussions similaires

  1. Lit les DVD mais pas les CD
    Par julien.63 dans le forum Périphériques
    Réponses: 4
    Dernier message: 30/11/2006, 23h36
  2. [9i] Supprimer les histogrammes mais pas les stats
    Par orafrance dans le forum Oracle
    Réponses: 4
    Dernier message: 21/08/2006, 08h13
  3. [9i] Crypter les données mais pas la structure
    Par nuke_y dans le forum Oracle
    Réponses: 38
    Dernier message: 27/02/2006, 11h23
  4. CSS : Bordure sur les liens mais pas sur les images ?
    Par monstroplante dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 04/02/2006, 14h18
  5. [CSS] border-collapse sur les TR mais pas sur les TD.
    Par hpfx dans le forum Mise en page CSS
    Réponses: 6
    Dernier message: 03/04/2005, 16h16

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