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] Besoin de variables et fonctions globales


Sujet :

MFC

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 8
    Points : 5
    Points
    5
    Par défaut [MFC] Besoin de variables et fonctions globales
    Bonjour,

    Je bosse sur un petit programme basé sur des boites de dialogues uniquement, et j'aurai besoin de variables globales et de fonctions gloables...

    En un peu plus détaillé, je gère un tableau d'éléments ( avec leurs champs et leurs methodes à eux ) et d'autres variables diverses, et j'ai besoin d'y acceder dans chaque boite de dialogue, tout comme j'ai besoin d'acceder à 2 fonctions ( sans parametres) qui font des traitements sur mes variables accessibles partout.

    Est ce possible, et comment ??

    Est ce que je dois mettre mes variables et mes fonctions dans les fichiers StdAfx ?

    On m'a montré une manière assez barbare je trouve, qui consiste à declarer une variable dans chaque boite de dialogue, et de recopier tous les champs à chaque appel d'une boite de dialogue, mais pour un projet de grande envergure, je me doute bien que ce n'est pas la solution...

    Qu'avez vous à me suggerer ?

    Merci d'avance. Bonne journée.
    Alexandre.

    PS : j'ai un peu cherché sur le forum, mais je n'ai pas trouvé de choses s'apparentant à mon histoire.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 43
    Points : 24
    Points
    24
    Par défaut
    Dans class view ta un truc Global, tu bouton droit dessus et tu peux fabriquer ta varible globale.
    Voila j'espers avoir répondu a ta question.

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    salut ,
    pourtant c'est un vieux sujet qui reviens souvent !

    le plus simple etant de declarer ces variables et ces fonctions dans la classe d'application du projet.
    rappel la classe d'application c'est la classe qui hérite de la classe MFC CWinApp.
    il n'existe qu'une seule instance de cette classe dans un programme MFC
    on peut y acceder à n'importe quel endroit du programme par la fonction:
    AfxGetApp().
    concretement il suffira de caster le retour de cette fonction avec ta classe d'application pour acceder à tes fonctions et variables.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CMyWinApp *TheApp=static_cast<CMyWinApp *>(AfxGetApp());
    TheApp->MyFonction();

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Oui, j'avais vu ces quelques lignes d'exemple, mais j'avais compris que cela ne s'appliquait qu'au sdi et mdi

    Bon, j'essaye tout de suite .

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Ok, j'ai réussi à avancer !!

    Question suivante :

    la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    CTestApp *TheApp=static_cast<CTestApp *>(AfxGetApp());
    doit être placée dans chaque fichier ou une seule fois suffit ?

    C'est le genre de ligne que je dois mettre dans les constructeurs de mes boites de dialogue ou plutot dans les OnInitDialog ou juste avant de vouloir manipuler une de mes variables globales ?

  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
    Points : 17 323
    Points
    17 323
    Par défaut
    tu peux effectivement declarer une variable de ta classe d'application dans ta classe dialog et l'initialiser dans le constructeur de ta classe pour l'utiliser ensuite dans toutes les fonctions de ta dialogue.
    tu peux aussi l'utiliser à la demande n'importe et n'importe quand ...

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Rhalala, tu es vraiment un as toi !!

    Merci beaucoup !
    (Mais pas de soucis, j'ai d'autres questions qui viendront )

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

Discussions similaires

  1. [Débutant] transformer une variable local en global d'une fonction
    Par bibed dans le forum MATLAB
    Réponses: 3
    Dernier message: 13/11/2009, 22h04
  2. Réponses: 2
    Dernier message: 30/09/2007, 14h35
  3. Réponses: 6
    Dernier message: 14/02/2005, 11h53
  4. Fichier de fonctions globales
    Par PEM dans le forum C++Builder
    Réponses: 5
    Dernier message: 10/07/2002, 21h35
  5. variables locales ou globales ???
    Par elvivo dans le forum C
    Réponses: 13
    Dernier message: 03/07/2002, 08h22

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