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 :

Afficher une CDialog Modal ou modeless


Sujet :

MFC

  1. #1
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 136
    Points : 116
    Points
    116
    Par défaut Afficher une CDialog Modal ou modeless
    Bonjour,

    Je travaille avec sous visual 2008, et rencontre un petit souci avec les dialog et les ressources associées.

    J'ai créé une ressource Dialog qui comprends quelques contrôles.

    Je voudrais afficher cette boite de dialogue de deux manière différentes: soit Modal lors d'un double click, soit Modeless (et child d'une autre Form) lors de sélection dans un arbre.

    Mon problème est le suivant: si je définis ma boite ayant le style WS_POPUP, la version Modal de la boite fonctionne bien. Par contre il m'est impossible dans ce cas d'intégrer la fenêtre dans une autre.

    Au contraire si je mets le style WS_CHILD, la version modeless s'affiche bien dans sa fenêtre parente, je peux lui mettre une taille custom, etc...
    Et là, c'est la version modale qui déconne: elle s'affiche derrière son parent. (Et j'arrive pas à la forcer devant)

    J'ai essayé de forcer les flags de style après le create et avant le show, mais ça n'a aucun effet.

    Je commence à avoir un doute sur la faisabilité de mon idée. Des avis ?


    edit: je précise qu'en plus de s'afficher à l'arrière, la boite modale n'a pas le focus, j'ai l'impression que la pompe à message n'est pas crée parce qu'elle n'a pas le style WS_POPUP.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 153
    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 153
    Points : 12 261
    Points
    12 261
    Par défaut
    J'ai essayé de forcer les flags de style après le create et avant le show, mais ça n'a aucun effet.
    Les styles des fenêtres (leur flags) sont prises en compte à la création de la fenêtre, pas lors de leur affichage.
    Il faut donc changer les flgas dans PreCreateWindow (http://msdn.microsoft.com/en-us/libr...v=VS.100).aspx)

  3. #3
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2008
    Messages
    136
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 136
    Points : 116
    Points
    116
    Par défaut
    Au final impossible de faire ce que je voulais avec CDialog, j'ai fini par tout mettre en modeless et gérer différemment mon affichage.

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/12/2014, 10h06
  2. Afficher une boîte modale jQuery depuis un UpdatePanel
    Par Franck.H dans le forum ASP.NET
    Réponses: 5
    Dernier message: 09/10/2014, 09h24
  3. Autodestruction d'une CDialog modale
    Par jacklafrip dans le forum MFC
    Réponses: 1
    Dernier message: 11/05/2007, 15h20
  4. [MFC][DLL]Afficher une CDialog ?
    Par matazz dans le forum MFC
    Réponses: 13
    Dernier message: 13/04/2005, 13h47
  5. Réponses: 3
    Dernier message: 28/01/2004, 14h55

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