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] CPropertySheet non modale


Sujet :

MFC

  1. #1
    Membre régulier Avatar de Philippe320
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 179
    Points : 99
    Points
    99
    Par défaut [MFC] CPropertySheet non modale
    Bonjour et meilleurs voeux à toutes et à tous

    nouvelle année, et nouvelles questions ....

    Suite à un clic sur le menu de mon application, j'arrive à:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    void CMonApp::ClicMenu() {
     
    CSheet ps("Titre",m_pMainWnd,0);       // CSheet est dérivée de CPropertySheet
     
    InitialisationsDiverses();
    if (ps.DoModal()==IDOK) Fin1();
    else Fin2();
     
    }
    Le fonctionnement modal ne me suffit plus car je dois pouvoir agir en même temps sur ma fenetre principale: sauf erreur de ma part,ceci n'est possible que si ma CPropertySheet est non modale (dites-moi si je me trompe !)

    Mon problème: comment gérer la fin de ma CPropertySheet ?
    car après
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ps.Create(....);
    ps.ShowWindow(...);
    je vais terminer ma procédure ClicMenu() (c'est grâce à ça que je vais pouvoir jouer avec ma fenetre principale)
    Où vais-je récupérer le code de fin de ma CPropertySheet (IDOK ou IDCANCEL) pour pouvoir appeler Fin1() ou Fin2() comme avant ?

    Est-ce que ma CPropertySheet devra envoyer un message à ma fenetre avant de mourir ? Si oui, comment ?

    Merci d'avance pour votre aide
    Philippe
    Philippe

  2. #2
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    ta property devra envoyer un message à ta fenêtre principale
    en utilisant par exemple un message privé voir faq :
    http://c.developpez.com/faq/vc/?page...PrivateMessage

  3. #3
    Membre régulier Avatar de Philippe320
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 179
    Points : 99
    Points
    99
    Par défaut
    Salut Farscape,

    d'accord pour cette méthode, que je vais essayer de ce pas ....
    pour peu que ma CPropertySheet veuille bien rester affichée ....

    après sa création (le ShowWindow me semble inutile), je la déplace par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ps.SetWindowPos(....)
    elle flashe à l'endroit prévu, et donc disparait

    J'ai essayé de ne pas la déplacer du tout, de mettre ou pas le ShowWindow, de la créer à partir du bureau (NULL comme parent), ou à partir de ma fenetre (m_pMainWnd comme parent) ...

    Rien n'y fait
    Philippe
    Philippe

  4. #4
    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
    Points : 17 323
    Points
    17 323
    Par défaut
    normal ce n'est pas un pointeur lol,
    voir faq:
    http://c.developpez.com/faq/vc/?page...gPostNcDestroy
    c'est le même principe que pour une dialogue...

  5. #5
    Membre régulier Avatar de Philippe320
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 179
    Points : 99
    Points
    99
    Par défaut
    évidemment !

    elle était détruite dès la fin de la procédure ....

    Encore une fois merci Farscape
    Philippe

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

Discussions similaires

  1. [C++/CLI] Lien avec MFC sur fenêtre non modale
    Par Tan Phi dans le forum C++/CLI
    Réponses: 1
    Dernier message: 13/04/2010, 15h26
  2. DialogBox non-Modal MFC DLL ne repond pas
    Par kaiser92 dans le forum MFC
    Réponses: 11
    Dernier message: 17/09/2009, 16h57
  3. [MFC] Créer une CDialog non modale dans un thread
    Par fleur_de_rose dans le forum MFC
    Réponses: 3
    Dernier message: 29/09/2006, 11h43
  4. Réponses: 6
    Dernier message: 27/07/2005, 14h49
  5. [MFC] instance unique de dialogue non modale
    Par venomelektro dans le forum MFC
    Réponses: 5
    Dernier message: 02/02/2005, 12h41

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