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 :

Inclure une boite de dialogue dans une boite de dialogue


Sujet :

MFC

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur vision
    Inscrit en
    Janvier 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur vision
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 23
    Points : 29
    Points
    29
    Par défaut Inclure une boite de dialogue dans une boite de dialogue
    Bonjour à tous confrère programmeur,

    Je maîtrise moyennement la bibliothèque MFC depuis septembre dernier, et j'ai une question dont je ne trouve pas de réponse sur le forum (peut-être ai-je mal regardé, ou mal formulé ma recherche).

    Voilà ma question : à l'instar de l'outil onglet de classe CTabCtrl qui me permet d'inclure une boîte de dialogue B sans bordure dans ma boite de dialogue mère A, est-il possible d'inclure directement une boite de dialogue B sans passer par l'outil onglet ? Ou dois-je forcément passer par l'affichage de B par dessus A en devant paramétrer tout les cas de figure graphique (quand je bouge A, B bouge tout en restant au dessus de A, etc) ? A mois que l'onglet soit la seul solution performente ?

    Je tiens à m'excuser d'avance si la question a déjà été posée... Je supprimerai directement ce post si c'est le cas.

    Merci d'avance pour votre réponse.

    foxaltex

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 074
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 074
    Points : 12 120
    Points
    12 120
    Par défaut
    l'outil onglet de classe CTabCtrl qui me permet d'inclure une boîte de dialogue B sans bordure dans ma boite de dialogue mère A
    C'est un piège.
    CTabCtrl ne crée pas une boite de dialogue dans une boite de dialogue.
    Elle utilise les informations de ressources d'une boite de dialogue pour construire un contrôle composite, qui n'est pas une boite de dialogue.

    L'approche la plus simple, c'est de mettre directement les contrôles dans une seule boite de dialogue.

    Pourquoi voulez-vous en faire des poupées russes ???

  3. #3
    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
    On peut tout-à-fait inclure une boîte de dialogue dans une autre, il suffit qu'elle ait les bons styles (notamment WS_CHILD et WS_EX_CONTROLPARENT).

    Par contre, il est possible que cela ne soit pas supporté par le Designer, et qu'il soit nécessaire d'appeler manuellement CreateDialog ou un truc du genre. Je ne me souviens plus.
    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.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur vision
    Inscrit en
    Janvier 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur vision
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 23
    Points : 29
    Points
    29
    Par défaut
    Bonjour,

    En fait, j'apprends à utiliser la bibliothèque MFC, et mon but serait d'avoir une boite de dialogue (dlg) qui s'affiche quand je clique sur un élément de la barre des menus. Dans cette dlg, j'ai trois zones qui font chacune un tiers de la taille totale : la première contient un menu deroulant, la troisième juste trois boutons, et la deuxième, la centrale quoi, me permet d'afficher des outils MFc (zone d'édition, boutons, etc.) selon le choix que j'ai fais dans mon menu déroulant.

    En cherchant sur internet comment faire cela, j'ai compris qu'il y avait deux options : soit je créé une boite à onglet dans laquelle j'affiche mes dlg sur un onglet, soit j'affiche une petite dlg dans ma dlg parente.

    Si quelqu'un à une idée plus simple (qui reste dans l'utilisation des MFC), je lui en serais très grès. ^^

    Merci d'avoir répondu.

    Cordialement,

    Axel

  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
    L'avantage des onglets, surtout des onglets étant eux-mêmes des boîtes de dialogue est que tu as tout ce qu'il faut pour ça dans MFC: Les Property Sheets, contenant chacune une ou plusieur Property Pages (voir les classes CPropertySheet et CPropertyPage).
    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.

  6. #6
    Nouveau membre du Club
    Homme Profil pro
    Ingénieur vision
    Inscrit en
    Janvier 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur vision
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2013
    Messages : 23
    Points : 29
    Points
    29
    Par défaut
    Merci pour ta réponse Médinoc.

    Je regarde ça et je vous tiens au courant

Discussions similaires

  1. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  2. Réponses: 9
    Dernier message: 13/03/2008, 01h34
  3. insertion dans une table puis update dans une autre table
    Par uptoditime dans le forum VBA Access
    Réponses: 5
    Dernier message: 10/10/2007, 18h08
  4. Recherche de valeur dans une feuille et affichage dans une autre
    Par Zebulon777 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 15/05/2007, 09h40
  5. Réponses: 3
    Dernier message: 06/09/2006, 09h06

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