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 :

DoModal et InitModalIndirect


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 91
    Par défaut DoModal et InitModalIndirect
    Bonjour

    Je souhaite utiliser un dialog modal.

    Avant de faire mon DoModal habituel, j'ai besoin de preparer la fenetre
    pour certaines initialisations.

    J'ai donc decidé d'utiliser InitModalIndirect.

    Le probleme est que je n'arrive pas a le faire fonctionner. J'ai parcouru de nombreux exemples et a chaque fois j'ai un plantage.

    Existe t il un tutoriel sur les dialog modal?

    Merci

  2. #2
    Membre émérite
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Par défaut
    Tu as juste à faire quelques fonctions publiques sur ta classe dialog pour faire les traitements nécessaires et les utiliser comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    ......
    // Création
    CMyDialog MyDialog;  
     
    // Initialisations
    MyDialog.Initialisation1(...);
    MyDialog.Initialisation2(...);
    MyDialog.Initialisation3(...);
     
    // Affichage modal
    MyDialog.DoModal();
    ......

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 91
    Par défaut
    Oui mais je ne peux pas effectuer des initialisation sur des elements graphiques (sur des boutons des champs...)

  4. #4
    Membre émérite
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Par défaut
    Toute interface graphique peut être créée, modifiée et supprimée par du code. Tu peux modifier des tailles, des textes ou des images de contrôles par du code et donc par cette méthode.
    Donne-moi un exemple d'initialisation que tu veux faire....

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 91
    Par défaut
    J'ai dans mon dialog un CListCtrl

    Si je tente de faire un InsertItem dedans, ca plante.

  6. #6
    Membre émérite
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Par défaut
    As-tu essayé de l'insérer dans le OnInitDialog()?
    Comment insères-tu ton item?

  7. #7
    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://cpp.developpez.com/faq/vc/?pa...ControlForward
    ce que tu demandes ne peux fonctionner et InitModalIndirect n'y changera rien...

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 91
    Par défaut
    Pourtant on peut tres bien le faire dans un dialog non modal avec un Create puis un showWindow.

    Il n'y a pas de methode pour une modale?

  9. #9
    Membre émérite
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Par défaut
    Tu ne peux pas utiliser les contrôles d'une boîte de dialogue dans le OnCreate() de celle-ci! Les contrôles ne sont pas finis d'être construits. Ca m'étonnerait fort que ça puisse fonctionner, que la fenêtre soit modale ou non.
    Toujours est-il que dans tons cas, c'est sensé passer si tu places tes initialisations dans le OnInitDialog(). As-tu jeté un oeil à l'exemple de la FAQ donné par Farscape? Il y est dit tout ce dont tu as besoin.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    91
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 91
    Par défaut
    Oui par le OnInitDialog cela fonctionne tres bien.

    Mais je voulais avoir a eviter de passer par des variables intermediaires pourl e chargement de ma liste.

    mais bon si on a pas le choix...

    Autrement pour une non modale, apres le Create, je peux intervenir comme je le souhaite sur les controles de la fenetre avant de l'afficher. J'ai jamais essayé sur une liste mais sur d'autres controles, je n'ai aucun souci.

  11. #11
    Membre émérite
    Avatar de Spout
    Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    904
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2007
    Messages : 904
    Par défaut
    C'est la différence entre pendant le Create() et après le Create()

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

Discussions similaires

  1. Réponses: 23
    Dernier message: 08/02/2006, 09h15
  2. lancer pls DoModal en meme temps
    Par firejocker dans le forum MFC
    Réponses: 7
    Dernier message: 23/12/2005, 20h58
  3. [MFC] étrange comportement de DoModal()
    Par r0d dans le forum MFC
    Réponses: 11
    Dernier message: 15/06/2005, 19h53
  4. Valeur retour de DoModal() ?
    Par loupdeau dans le forum MFC
    Réponses: 2
    Dernier message: 10/06/2005, 11h16
  5. [MFC] DoModal() plante
    Par barthelv dans le forum MFC
    Réponses: 3
    Dernier message: 29/07/2004, 10h56

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