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] ouverture de fenetre


Sujet :

MFC

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 142
    Points : 91
    Points
    91
    Par défaut [MFC] ouverture de fenetre
    bonjour,

    J'ai voulu ouvrir une boite de dialogue renseignant l'utilisateur...
    Pour cela, aucun problème ..
    or, le code qui suit ne s'éxécute pas, ce que je ne comprend pas ...

    Voila comment j'ouvre ma fenetre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    {
     CActuaCoursDlg actua;
     actua.DoModal();
    }
    Ensuite, viens un switch case me permettant, suivant le case, de fermer et d'ouvrir une nouvelle fenêtre ...

    Si quelqu'un a des suggestions ...

    Merci

  2. #2
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    t'as oublier de la creer
    regarde du coté de CDialog::create

  3. #3
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    salut,

    le code qui suit le DoModal() ne s'exécutera que lorsque la fenêtre actua aura été fermé.

    mets nous un peu plus de code pour qu'on voit ce que tu fais.


  4. #4
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    Citation Envoyé par hiko-seijuro
    t'as oublier de la creer
    regarde du coté de CDialog::create
    ben non pas besoin d'appeler Create ici.

  5. #5
    Membre expert
    Avatar de hiko-seijuro
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 011
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 011
    Points : 3 065
    Points
    3 065
    Par défaut
    ah vi c'est un doModal chuis con

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 142
    Points : 91
    Points
    91
    Par défaut
    LA fenetre s'ouvre s'en aucun probleme, mais effectivement, tant que je ne l'es pas refermé, le code qui la suit ne s'execute pas !

    voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    {
     char CMD[] = {"\r"};// variable stockant la commande. parametre de la fonction de sandrine
     int erreur;   // variable stockant le code d'erreur retourner par la fct récupération
     char buff[200]; // tableau de caractère permettant le stockage de la ligne 
    {
     CActuaCoursDlg actua;
     actua.DoModal();
    }
     // fonction de Récupartion
     // à implémenter
     erreur = 0;   // affectation d'une valeur pour tester le switch case
    
     switch (erreur)
     {
      case 0 : // ce qui doit ce passer
       {
        // fermer la popup 
        // lecture du fichier contenant le nom des fichiers :
        ifstream infile("liste"); // ouverture du fichier liste.txt
        //while(!infile.eof()) si plusieurs ligne dans le fichier, faire une boucle
        infile.getline(buff, sizeof(buff)); //lecture d'une ligne complete
        infile.close();
    
        // affichage du fichier dans la zone d'édition
        CString s(buff), s2("il y a ");   
        s.Replace(":"," fichiers présents :\r\n\r\n");  // change les ":" par la chaine avec un retour chariot + nvlle ligne
        s.Replace(",","\r\n");  // change les "," par des retour chariot + nvlle ligne
        s2 += s;
        m_edit.SetWindowText(s2); // affiche le contenu de s
       break;
       }
      case 1 : 
       {
    // fermer la popup
          //ouvrir une new fenetre
       }
      
     }
    }
    voili ....

  7. #7
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    Si tu veux que la suite du code s'exécute dans la foulée sans avoir besoin de fermer "actua", il faut l'ouvrir en modeless, et non en modal.

    par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CActuaCoursDlg * actua= new CActuaCoursDlg(...);
    actua->Create(...);
    actua->ShowWindow(SW_SHOW);

    voilou...

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 142
    Points : 91
    Points
    91
    Par défaut
    Après avoir réfléchi sur ce que tu a posté, je reviens toujours à la même chose, que faut t'il mettre à la place des (...) ?

    Je suis débutant, je comprend pas tout

    Merci de m'éclairer

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 142
    Points : 91
    Points
    91
    Par défaut
    voili, j'ai trouvé !

    Si jamais quelqu'un est dans le besoin, je met le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    {
    CActuaCoursDlg * pactua= new CActuaCoursDlg(this);
    pactua->Create(CActuaCoursDlg::IDD);
    pactua->ShowWindow(1);
    }
    Voili !

    a oui, une dernière, en ce qui concerne la fermeture de cette dialogue, je fait comment ?

  10. #10
    Rédacteur
    Avatar de bigboomshakala
    Homme Profil pro
    Consultant Web .NET
    Inscrit en
    Avril 2004
    Messages
    2 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant Web .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 2 077
    Points : 2 757
    Points
    2 757
    Par défaut
    !!! SW_SHOW ou une autre des constantes prévues pour ShowWindow

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pactua->ShowWindow(SW_SHOW);
    les constantes sont là pour rendre le code compréhensible.

    a oui, une dernière, en ce qui concerne la fermeture de cette dialogue, je fait comment ?
    par fermeture, tu entends destruction ?

    - soit tu utilises un pointeur membre de la classe qui crée la fenetre et tu le détruis en meme temps que l'objet de cette classe
    - soit tu n'utilises pas de pointeur

    sinon pour fermer la fenêtre, il faut prévoir un bouton par exemple

  11. #11
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 142
    Points : 91
    Points
    91
    Par défaut
    * se dépeche de modifier son code *
    * test ... ok *
    * apres tout, il doit très certainement avoir raison *

    Je te remercie de me reprendre ... sa me matte ... lol

    Quand j'entend détruire, j'entend le "~", donc je ne pense pas avoir compris ...

    Je te remercie pour l'info, je fait regarder et faire tourner ma caboche !

    Merci

  12. #12
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 142
    Points : 91
    Points
    91
    Par défaut
    J'ai fait ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
      pactua->DestroyWindow(); // destruction de la fenêtre popup
        delete pactua;    // destruction du pointeur
    et ca fonctionne donc c'est panard !

    Merci pour votre aide !

  13. #13
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 142
    Points : 91
    Points
    91
    Par défaut
    dite moi, je ne comprend pas pourquoi ma boite de dialogue s'affiche sans le contenu ?

    Ca le fait si je fait une boucle d'attente avant ....
    Sinon, sa me l'affiche impec ...

    Il n'y aurait pas une option ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ouverture de fenetre
    Par hunter dans le forum Agents de placement/Fenêtres
    Réponses: 4
    Dernier message: 16/06/2004, 16h34
  2. [MFC] ouverture en lecture d'un fichier inexistant
    Par bigboomshakala dans le forum MFC
    Réponses: 9
    Dernier message: 07/05/2004, 12h42
  3. [MFC] Maximiser à l'ouverture une fenetre fille !
    Par leskritiques dans le forum MFC
    Réponses: 15
    Dernier message: 28/04/2004, 08h50
  4. Réponses: 3
    Dernier message: 03/02/2004, 17h34
  5. Réponses: 6
    Dernier message: 27/01/2004, 16h08

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