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 :

Dialog Modal Invisible par défaut


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut Dialog Modal Invisible par défaut
    Bonjour,

    Je cherche un moyen "propre" d'initialiser une boite de dialogue modale à INVISIBLE. J'ai fait une recherche avancée, mais je n'ai vu aucun moyen d'y parvenir.

    Alors j'ai fait une bidouille :
    Je me suis inspiré de cet article de la faq :
    http://<br /> http://c.developpez.c...gRunTask<br />

    et dans la fonction OnRunTest, je fais un ShowWindow(SW_HIDE)

    Le seul problème, c'est que ça peut faire un "petit" flash ...

    Avez-vous d'autres idées :

  2. #2
    Invité de passage
    Inscrit en
    Août 2004
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 1
    Par défaut
    salut,
    j'ai un moyen qui n'est pas très propre, c'est de mettre OnCancel() dans OnInitDialog(), sinon je crois que dans les proprietes de la fenetre tu peux faire qq chose.
    A+

  3. #3
    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,
    tu as essaye de faire le showwindow a la place du postmessage ?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut
    oui, en fait j'avais mis un SendMessage, ce qui revient donc au même.
    mais pour être sûr, j'ai essayé le ShowWindow directement, et j'ai le même résultat : j'ai des fois un tout petit flash, on sent bien que la fenêtre apparait et disparaît immédiatement ...

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut
    salut,
    j'ai un moyen qui n'est pas très propre, c'est de mettre OnCancel() dans OnInitDialog(), sinon je crois que dans les proprietes de la fenetre tu peux faire qq chose.
    A+
    Ben tout ce qui se passe si je fais ça, c'est que ma fenêtre est détruite ... non pas invisible, et moi je veux surtout pas la détruire ...

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut
    Bon, et bien je vais garder ma solution alors, même si elle n'est pas propre du tout ...

    Mais ça me tue qu'il n'en existe pas une qui marche nickel

    Disons qu'il faudrait que je crée ma dialog autrement ...

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 77
    Par défaut
    Si dans le oncreate, le membre style de la CREATESTRUCT n'a pas la valeur WS_VISIBLE, alors ca devarit être bon.

    sans doute un truc comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    lpCreateStruct ->style &= (~WS_VISIBLE) ;

  8. #8
    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
    deja essayé ça fonctionne pas .....

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 77
    Par défaut
    si c'est pas la, c'est dans PreCreateWindow ?

  10. #10
    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
    marcha pas non plus ...

  11. #11
    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,
    apres moultes essais le probleme est resolu voir mon post dans le post it de la faq :
    http://www.developpez.net/forums/vie...319157#1319157
    8)

  12. #12
    Membre Expert
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Par défaut
    dialogue modale à INVISIBLE
    rien que ca, je trouve qu'il y a un contre sens dans la demande. Une boite modale est une boite qui recupere tous les messages et qui garde le focus. Elle devra faire quoi si elle est invisible ???

  13. #13
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut
    rien que ca, je trouve qu'il y a un contre sens dans la demande. Une boite modale est une boite qui recupere tous les messages et qui garde le focus. Elle devra faire quoi si elle est invisible ???
    L'intérêt est qu'elle soit créée invisible, et de pouvoir, sur une action utilisateur, être visible.
    Pendant qu'elle est invisible, elle peut, de par certaines de ses propriétés, effectuer certaines tâches, sans que l'utilisateur ne la voit.

    On pourrait par exemple, suivant un flag de config, faire tourner un programme, soit avec IHM (dialog based modale) pour action utilisateur diretement dans l'interface, soit sans IHM, agissant un peu comme un service, et piloté par une autre application qui lui enverrait des commandes gérées par les contrôles (edit, boutons, ...) de la dialog invisible.


    En tout cas merci farscape, je vais mettre en pratique ta solution !

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 77
    Par défaut
    pour reprnedre ce que disait "la drogue c'est mal", je vois tres bien le gag de la boite de dialogue system modale invisible....

    plaisant intellectuellement mais un peu méchant pour les utilisateurs

  15. #15
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 577
    Par défaut
    bon, c'est pas pour revenir sur un truc déjà traité, et qui marche trés bien en plus (grâce à farscape), mais j'ai trouvé une autre silution qui marche aussi, certes un peu moins élégante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	CRect rect(-1, -1, 1, 1);   //pour forcer l'appel à OnPaint
    	MoveWindow(&rect);
    La fenêtre est donc redimensionnée avec une taille de 1*1 pixel, à l'extérieur de la zone de l'écran, ce qui ne provoquera donc pas de "flash" au moment du ShowWindow(SW_HIDE).

    et donc, faire ensuite un :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ShowWindow(SW_HIDE) dans le OnPaint
    Bon, voilà, c'est peut être un peu moins pro, mais c'était juste pour présenter une autre solution.

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 30/07/2014, 08h39
  2. [TListBox] Selection par défaut
    Par Nuts07 dans le forum Composants VCL
    Réponses: 8
    Dernier message: 12/05/2003, 10h00
  3. Couleur de sélection par défaut
    Par sicard_51 dans le forum AWT/Swing
    Réponses: 2
    Dernier message: 20/04/2003, 23h35
  4. [SWING][FONT] choisir la police par défaut
    Par narmataru dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 21/02/2003, 10h35
  5. Retour au mode texte par défaut
    Par coca dans le forum x86 16-bits
    Réponses: 6
    Dernier message: 12/12/2002, 17h22

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