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 :

partager la valeur d'une variable entre les classes


Sujet :

MFC

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 371
    Points : 45
    Points
    45
    Par défaut partager la valeur d'une variable entre les classes
    bonjour

    dans un projet MFC j'ai declarer ma variable integer dans .h

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    // le debut de code
     
    //}}AFX_VIRTUAL
     
    // Implementation
     
     
    protected:
    	HICON m_hIcon;
     
            char convertage[20]; //ma variable pour convertire les integers
    	int test; //ma variable integers
     
    // Le reste de code
    dans le fichier cpp , dans la fonction OnLButtonDown j'ai donne la valeur pour cette variable et j'ai lui converte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void CTestDlg::OnLButtonDown(UINT nFlags, CPoint point) 
    {
    	// TODO: Add your message handler code here and/or call default
     
    	test = 36;
     
    	sprintf(convertage,"%d",test);
     
    	CDialog::OnLButtonDown(nFlags, point);
    }
    puis j'essaye d'affiche le resultat dans un message box :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    void CTestDlg::OnMouseMove(UINT nFlags, CPoint point) 
    {
    	MessageBox(convertage,"mon message box",MB_OK); // affiche le msgbox
     
    	CDialog::OnMouseMove(nFlags, point);
    }
    le probleme c'est que je reçoi un truc bizzard, voila a quoi il ressemble mon msgbox :




    merci d'avoir m'aide, pour faire partage
    Images attachées Images attachées  

  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,
    quelques remarques:
    ta variable convertage n'est pas initialisée.
    En c++ il est préférable d'utiliser des CString ou std:string pour manipuler des chaines.
    ta conversion pourra s'ecrire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // CString strConvertage;
    strConvertage.Format("%d",test);
    dans ton code rien ne garanti que tu passes dans OnLButtonDown avant OnMouseMove et comme ta chaine n'est pas initialisée tu as un résultat pourri à l'écran.

  3. #3
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Points : 50 367
    Points
    50 367
    Par défaut
    Citation Envoyé par farscape Voir le message
    dans ton code rien ne garanti que tu passes dans OnLButtonDown avant OnMouseMove et comme ta chaine n'est pas initialisée tu as un résultat pourri à l'écran.
    Il est même quasi sûr que tu passes dans OnMouseMove() avant de passer par OnLButtonDown()

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    371
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 371
    Points : 45
    Points
    45
    Par défaut
    merci pour votre reponse.

    je n'es pas initialise ma variable parce que normalement il faut l'initialise dans le constructeur et puisqu'il n'y a pas de constructeur dans la classe .h de fichier dialog, je l'avait laisse sans initialisation.

    merci pour la methode de convertage mais mon probleme est toujours celui qui est dans la photo.

    que dois-je faire

  5. #5
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Initialise ta variable dans le constructeur ou dans OnInitDialog :
    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
     
    // .h
    class CMonDialog : public CDialog
    {
    //
    protected:
    	HICON m_hIcon;
     
            char convertage[20]; //ma variable pour convertire les integers
    // ou mieux :
            CString strConvertage
    	int test; //ma variable integers
     
     
    };
    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
     
    // .cpp
    CMonDialog::CMonDialog()
    :CDialog//...
    {//....
    convertage[0]=0;
    // ou 
    strConvertage = "";
    };
     
    CMonDialog::OnInitDialog()
    {//....
    convertage[0]=0;
    // ou 
    strConvertage = "";
    };

Discussions similaires

  1. partager une variable entre les utilisateurs sous aix
    Par Khalid.bounouader dans le forum AIX
    Réponses: 3
    Dernier message: 20/09/2012, 10h51
  2. Partager une variable entre plusieurs classes
    Par jasonpolakow dans le forum Windows Forms
    Réponses: 8
    Dernier message: 06/01/2011, 10h02
  3. Réponses: 4
    Dernier message: 04/08/2007, 17h04
  4. Réponses: 9
    Dernier message: 30/05/2006, 10h33
  5. Partage d'une variable entre les processus fils
    Par Mehdi Feki dans le forum Linux
    Réponses: 7
    Dernier message: 09/01/2005, 13h34

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