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 :

Aller vers une autre fenêtre de dialogue


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 126
    Par défaut Aller vers une autre fenêtre de dialogue
    Bonjour à tous !!

    voila je suppose que c'est une question toute bête mais je n'arrive pas à trouver de réponses.

    Je code une application avec plusieurs boites de dialogue. Comment puis je en cliquant sur un bouton aller vers une autre boite de dialogue ?

    En gros dans la fonction suivante comment dois je indiquer le fait d'aller dans une autre boite de dialogue?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    void MMenu::OnBnClickedOkCalScreen()
    {
    	// TODO: Add your control notification handler code here
    	OnOK();
    }
    je désire aller en cliquant sur OK vers la boite de dialogue avec l'identifiant suivant :ID_CALIBRATION_SCREEN.

    Merci d'avance!!

  2. #2
    Membre chevronné
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    Bonjour,

    La nouvelle boîte de dialogue ID_CALIBRATION_SCREEN est elle déjà visible à l'écran, ou faut-il la créer et l'afficher ?

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 126
    Par défaut
    En fait elle existe c'est une boite de dialogue créée. Il faut juste l'ouvrir. je sais qu'en VB ca donnerait un truc du style ID_CALIBRATION_SCREEN.show .. mais la je sais pas comment faire

  4. #4
    Membre chevronné
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    Si je comprends bien, tu ne disposes pas de pointeur sur l'autre boîte de dialogue. Pour la retrouver, tu peux faire comme c'est expliqué dans la FAQ.
    Une fois que tu auras retrouvé l'instance de cette boîte de dialogue, il faudra la rendre visible. Cf. la FAQ.

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 126
    Par défaut
    euhhh je ne comprends pas trop. En fait j'ai une fenêtre Dialogue MMenu avec le .cpp suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    // MMenu.cpp : implementation file
    //
     
    #include "stdafx.h"
    #include "Graphical_IHM.h"
    #include "MMenu.h"
     
     
    // MMenu dialog
     
    IMPLEMENT_DYNAMIC(MMenu, CDialog)
     
    MMenu::MMenu(CWnd* pParent /*=NULL*/)
    	: CDialog(MMenu::IDD, pParent)
    {
     
    }
     
    MMenu::~MMenu()
    {
    }
     
    void MMenu::DoDataExchange(CDataExchange* pDX)
    {
    	CDialog::DoDataExchange(pDX);
    }
     
     
    BEGIN_MESSAGE_MAP(MMenu, CDialog)
    	ON_BN_CLICKED(IDOK, &MMenu::OnBnClickedOkCalScreen)
    END_MESSAGE_MAP()
     
     
    // MMenu message handlers
     
    void MMenu::OnBnClickedOkCalScreen()
    {
    	// TODO: Add your control notification handler code here
    	OnOK();
    et j'aimerai que losrque je clique sur OK cela ferme cette boite de dialogue et ouvre celle avec le .h suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
    #pragma once
     
     
    // CalScreen dialog
     
    class CalScreen : public CDialog
    {
    	DECLARE_DYNAMIC(CalScreen)
     
    public:
     
    //	DECLARE_DYNCREATE(CalScreen) //pour récupérer la signature
    	CalScreen(CWnd* pParent = NULL);   // standard constructor
    	virtual ~CalScreen();
     
    // Dialog Data
    	enum { IDD = ID_CALIBRATION_SCREEN };
     
    protected:
    	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
     
    	DECLARE_MESSAGE_MAP()
    };
    Je ne vois pas ou insérer la partie d'appel de la dialogue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
        CalScreen *pDlg;
        pDlg = new CalScreen();
        pDlg->Create(CalScreen ::IDD,AfxGetMainWnd());
        pDlg->ShowWindow(SW_SHOW);
    si je l'insère dans le .cpp de MMenu il ne connait pas CalScreen.. et quand j'utilise ShowWindow comment sait-il que c'est CalScreen que je veux ouvrir ?

  6. #6
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    126
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 126
    Par défaut
    Si je fais ca aprés avoir récupéré le pointeur sur la fenêtre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    void MMenu::OnBnClickedOkCalScreen()
    {
    	// TODO: Add your control notification handler code here
    	OnOK();
    	CalScreen.ShowWindow(SW_SHOW); // pour afficher SW_HIDE pour Cacher.
    }
    J'ai l'erreur missing ; before . :/

  7. #7
    Membre chevronné
    Avatar de PetitPapaNoël
    Développeur informatique
    Inscrit en
    Septembre 2006
    Messages
    559
    Détails du profil
    Informations personnelles :
    Âge : 49

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 559
    Par défaut
    Citation Envoyé par Emyleet Voir le message
    Je ne vois pas ou insérer la partie d'appel de la dialogue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        CalScreen *pDlg;
        pDlg = new CalScreen();
        pDlg->Create(CalScreen ::IDD,AfxGetMainWnd());
        pDlg->ShowWindow(SW_SHOW);
    si je l'insère dans le .cpp de MMenu il ne connait pas CalScreen.. et quand j'utilise ShowWindow comment sait-il que c'est CalScreen que je veux ouvrir ?
    Je croyais que cette boîte de dialogue CalScreen était déjà instanciée. Je pensais juste qu'elle n'était pas visible. A quel endroit as-tu mis ce code là ?

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

Discussions similaires

  1. [Joomla!] Aller vers une autre page
    Par Johngtrs dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 03/03/2013, 18h16
  2. Récupérer valeur Jlist vers une autre fenêtre
    Par chlock62 dans le forum NetBeans
    Réponses: 0
    Dernier message: 21/01/2010, 11h30
  3. Réponses: 28
    Dernier message: 21/04/2008, 12h18
  4. Réponses: 1
    Dernier message: 21/11/2007, 21h53
  5. Réponses: 1
    Dernier message: 08/03/2007, 11h03

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