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- boite de dialogue


Sujet :

MFC

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 23
    Points : 17
    Points
    17
    Par défaut MFC- boite de dialogue
    Bonjour à tous,

    j'ai deux problemes que j'arrive pas à resoudre en MFC:

    1) comment transformer une boite de dialogue modale en boite de dialogue non modale apres avoir creer la boite ?

    2) comment lancer une boite de dialogue dès l'execution d'un projet MFC ? sans cliquer sur un item ou un menu.

    merci d'avance !

  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,
    consulte la faq.
    http://cpp.developpez.com/faq/vc/?pa...CreateModeless
    pour le deuxième point ça dépend du type d'application MFC créée.
    boite de dialogue ? SDI ? MDI ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 23
    Points : 17
    Points
    17
    Par défaut MFC-boite de dialogue
    salut farscape;
    j'ai regardé la faq.

    pour ma premiere question :

    j'ai vu ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    pDlg = new CMyDlg(this);
    pDlg->Create(CMyDlg ::IDD,this);
    pDlg->ShowWindow(SW_SHOW);
    mais le probleme est que je comprend pas trop le "this" qui est passé en parametre , je sais que "this" c'est la classe courante mais mois je lance mes boites de dialogues dans ma classe CDoc ( dans une methode de gestionnaire d'evenement OnCliquer() ).

    Pour ma deuxieme question:

    c'est un projet SDI !

    merci.
    Pense à mettre la balise code, Merci Farscape

  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
    pour comprendre il suffit de regarder la définition de la classe dans la documentation..
    this ici représente la fenêtre parent, en général on appelle une dialogue d'une autre fenêtre d'où le this dans la faq.
    dans ton cas tu peux mettre NULL si elle est appelée à partir du document.
    si tu a un projet SDI , tu peux faire l'appel de la dialogue à partir de la méthode OnInitialUpdate de ta view. (on en revient au this pour la boîte de dialogue).
    je ne vois pas l'intérêt d'appeler la dialogue a partir du document .
    sinon tu peux aussi appeler une méthode du document à partir de la view.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    GetDocument()->MaMethodeQuiLanceDialog();

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 23
    Points : 17
    Points
    17
    Par défaut
    merci pour ton aide farscape,
    j'applique ce code dans ma classe CDoc où je lance la boite

    pDlg.Create(IDD_DIALOG4, NULL);
    pDlg.ShowWindow(SW_SHOW);

    le code est bon, par contre la boite disparait trop vite de la vue. alors je me suis dit que ça depend de l'argument de ShowWindow(); mais apres avoir fait un tour sur la msdn de MFC j'ai beaucoup de fois modifié les arguments et la boite disparait toujours aussi vite.

    as tu une solution pour moi ? merci

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    revois le code de la faq...
    ton objet doit être alloué dynamiquement par new,sinon quand il sort de sa portée il est détruit et la fenêtre avec...

Discussions similaires

  1. [MFC] Boite de dialogue qui se lance pas
    Par kacedda dans le forum MFC
    Réponses: 4
    Dernier message: 08/03/2006, 10h37
  2. [MFC] Boite de dialogue
    Par kacedda dans le forum MFC
    Réponses: 9
    Dernier message: 17/02/2006, 15h51
  3. [MFC]Boites de dialogues indépendantes
    Par klarky88 dans le forum MFC
    Réponses: 1
    Dernier message: 14/06/2005, 18h50
  4. Réponses: 3
    Dernier message: 17/06/2004, 16h59
  5. OpenGL - MFC Boite de dialogue
    Par cybertigre dans le forum OpenGL
    Réponses: 3
    Dernier message: 15/04/2004, 16h09

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