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 box vide


Sujet :

MFC

  1. #1
    Membre éclairé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2006
    Messages : 245
    Par défaut Dialog box vide
    Bonjour,
    Je lance à partir d'une CFormView une dialog box avec la méthode create.
    Malheureusement, celle-ci ne charge pas le texte que je lui demande d'afficher...

    Pkoi donc ?

    Voici le code de l'appel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    	CDlgTestEnCours *pDlg = new CDlgTestEnCours(this);
    	pDlg->Create(CDlgTestEnCours::IDD,this);
    	if (compte.type_test == 0){
    		pDlg->m_StrTest="Test d'un masque en cours";
    	}else if(compte.type_test == 1){
    		pDlg->m_StrTest="Test de la soupape en cours";
    	}else if(compte.type_test == 2){
    		pDlg->m_StrTest="Test de la stabilité du détendeur en cours";
    	}
    	pDlg->ShowWindow(SW_SHOW);
    et le code de la dialogbox en question :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    BOOL CDlgTestEnCours::OnInitDialog()
    {
    	CDialog::OnInitDialog();
    	/*if (compte.type_test == 0){
    		m_StrTest = "Test d'un masque en cours";
    	}else if (compte.type_test == 1){
    		m_StrTest = "Test de la soupape tarée en cours";
    	}else if (compte.type_test == 2){
    		m_StrTest = "Test de la stabilité du détendeur";
    	}*/
    	UpdateData(FALSE);
    	return TRUE;
    }
    Pourtant, j'avais pensé bien faire en utilisant la méthode décrite ici pour créer les contrôles avant d'afficher la boîte de dialogue...

  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
    Par défaut
    fait tes affectations avant le create de la dialogue.

  3. #3
    Membre éclairé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2006
    Messages : 245
    Par défaut
    Merci.
    J'ai testé, et ca ne marche toujours pas.
    J'ai donc mis les affectations avant le Create et rien ne s'affiche ...

    D'ailleurs, après avoir testé, j'ai changé les caractéristiques du contrôle à laquelle la variable m_StrTest correspond.
    J'ai mis Transparent = "False" alors qu'avant c'était "True"
    Normalement, le texte devrait apparaître en noir dans un rectangle blanc alors que le reste de la fenêtre est en gris basique ...
    Et RIEN ne s'affiche, même pas le rectangle blanc...

    J'avoue ne rien y comprendre.

  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
    Par défaut
    tu rentres dans OnInitDialog ?
    (à verifier avec un point d'arret en debug)

  5. #5
    Membre éclairé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2006
    Messages : 245
    Par défaut
    J'ai vérifié, et Oui, il rentre bien dedans.
    le contrôle m_StrTest vaut bien la bonne valeur ...
    C'est donc un problème d'affichage, non ?

  6. #6
    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
    tu es sûr que ta variable est bien associée au contrôle ?
    montre le code de ton dodataexchange.

  7. #7
    Membre éclairé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2006
    Messages : 245
    Par défaut
    Je n'ai qu'un seul contrôle, le texte à afficher qui se nomme : IDC_TEST
    Voici le code de mon DoDataExchange :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    void CDlgTestEnCours::DoDataExchange(CDataExchange* pDX)
    {
    	CDialog::DoDataExchange(pDX);
    	DDX_Text(pDX, IDC_TEST, m_StrTest);
    }

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 391
    Par défaut
    Bonjour

    Dans ton init dialog ce n'est pas plutot un updatedata(TRUE) qu'il te faudrait ???

    Cordialement!;

  9. #9
    Membre éclairé
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2006
    Messages : 245
    Par défaut
    Il me semble que non, à moins que je n'ai rien compris aux UpdateData();
    D'ailleurs, je viens de tester, ca ne change rien...
    Toujours pas d'affichage

  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
    salut,
    poutant tu dois te planter quelque part:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CDlgTest *pDlg;
        pDlg = new CDlgTest(this);
        pDlg->m_test="essai";
        pDlg->Create(CDlgTest ::IDD,this);
        pDlg->ShowWindow(SW_SHOW);
    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
     
    void CDlgTest::DoDataExchange(CDataExchange* pDX)
    {
        CDialog::DoDataExchange(pDX);
        //{{AFX_DATA_MAP(CDlgTest)
        DDX_Text(pDX, IDC_EDIT1, m_test);
        //}}AFX_DATA_MAP
    }
    BEGIN_MESSAGE_MAP(CDlgTest, CDialog)
        //{{AFX_MSG_MAP(CDlgTest)
        //}}AFX_MSG_MAP
    END_MESSAGE_MAP()
     
    /////////////////////////////////////////////////////////////////////////////
    // CDlgTest message handlers
     
    BOOL CDlgTest::OnInitDialog() 
    {
        CDialog::OnInitDialog();
     
        // TODO: Add extra initialization here
        UpdateData(FALSE);
        return TRUE;  // return TRUE unless you set the focus to a control
                      // EXCEPTION: OCX Property Pages should return FALSE
    }
    fonctionne sans problémes ....

Discussions similaires

  1. Pop-up d'une dialog box a partir d'un bouton
    Par bobbyjack dans le forum MFC
    Réponses: 21
    Dernier message: 13/09/2005, 15h32
  2. Insertion dialog box dans feuille SDI
    Par Tom Joad dans le forum MFC
    Réponses: 3
    Dernier message: 12/04/2004, 00h04
  3. Lien MainFrame / Dialog Box
    Par Alexonthenet dans le forum MFC
    Réponses: 11
    Dernier message: 10/03/2004, 20h06
  4. comment faire un Dialog Box demi-transparent?
    Par Zorgz dans le forum MFC
    Réponses: 3
    Dernier message: 08/01/2004, 14h02
  5. [Win32]Open/Save Dialog Box
    Par Chance666 dans le forum Windows
    Réponses: 2
    Dernier message: 07/01/2004, 16h47

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