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 Variable Dynamique


Sujet :

MFC

  1. #1
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2010
    Messages : 62
    Par défaut MFC Variable Dynamique
    Bonjour a tous!

    Voila je me suis mise aux MFC comme ceci: (voir pj)

    A chaque carré j'assigne un nom avec:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	DDX_Control(pDX, IDC_LABEL_HYDVERSION3, m_HydVersion3);
    	DDX_Control(pDX, IDC_LABEL_HYDVERSION2, m_HydVersion2);
    	DDX_Control(pDX, IDC_LABEL_HYDVERSION1, m_HydVersion1);
    Par exemple.
    Le problème est que j'aimerais que tout se fasse un peu dynamiquement.

    C'est a dire que j'ai une structure qui contient beaucoup d'information dont le nom de chaque ligne comme "HYD" "TR3",... Cette structure est stocké dans un tableau:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    			typedef struct Calc
    			{
    			   unsigned long AdresseEmmission;
    			   unsigned long AdresseReception;
    			   unsigned long SeedValue;
    			   char* EcuName;
    			   bool Bus;
    			}t_Calc;	
    Tableau contenant les différentes structure:		
    t_Calc* Calculo[n];
    Et j'aimerais grace a ce nom sans spécifié dans le programme arrivé a utiliser m_HydVersion3,HydVersion2,HydVersion1 pour HYD et de même pour les autres.

    J'ai vus qu'il n'existait pas de nom de variable dynamique du type: $NomFixe$NomDynamique, ce qui aurait était très utile.Je ne sais pas vraiment comment faire.

    Et pendant que j'y suis comment est ce que je pourrais rajouter une ligne sans toucher mon programme juste en changeant le nombre de strcuture dans le tableau et en utilisant le nom du nouveau Calc pour creer ces boites.

    Je ne sais pas si j'ai étais clair en tout cas merci.
    Images attachées Images attachées  

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2010
    Messages : 62
    Par défaut
    En faite tout simplement ce que j'aimerais faire c'est du MFC que je crois que l'on appelle dynamique. C'est a dire suivant les info de mon xml creer un certain nombre de boite que je pourrais modifier avec des labels creer aussi après la récupération du XML.

  3. #3
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Pour créer dynamiquement un contrôle utilise la méthode Create.

  4. #4
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2010
    Messages : 62
    Par défaut
    Merci pour votre réponse rapide.

    Mais en faite je vais partir du fait que je n'ai que les boutons lecture, lecture/Ecriture et Enregistrer/Quitter.
    Le problème est que pour utiliser la fonction create il faut sa basé sur une boite déja existante non?

  5. #5
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Le problème est que pour utiliser la fonction create il faut sa basé sur une boite déja existante non?
    je ne saisi pas trop ta question

  6. #6
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2010
    Messages : 62
    Par défaut
    Pour utiliser la fonction create, a ce que j'ai compris il faut se baser sur un objet mfc déja creer?

  7. #7
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Create crée "l'objet graphique". La structure de contrôle rattachée à cet objet (celle dont on appelle la méthode Create) doit donc être en effet créée.

    Je t'invite à aller mater les tutos afin de maîtriser un peu plus les bases des MFC.

  8. #8
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2010
    Messages : 62
    Par défaut
    Merci encore pour votre réponse et les tuto mais n'y a t'il pas un moyen pour creer un objet en ne partant de rien?

  9. #9
    Membre éprouvé
    Avatar de TheGzD
    Homme Profil pro
    Ingénieur/ Docteur en Informatique
    Inscrit en
    Avril 2007
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Ingénieur/ Docteur en Informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 327
    Par défaut
    Pour créer dynamiquement une variable de contrôle on peut utiliser l'opérateur new

  10. #10
    Membre très actif
    Profil pro
    Développeur indépendant
    Inscrit en
    Août 2004
    Messages
    374
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Développeur indépendant
    Secteur : Transports

    Informations forums :
    Inscription : Août 2004
    Messages : 374
    Par défaut à partir de rien...
    ca laisse songeur...
    faut peut etre préciser à quel rien tu fais reference.

    tu peux creer un objet CButton par exemple, de facon dynamique.
    et lui assigner ses caracteristiques au moment de sa creation.
    mais tu ne pars pas de rien, tu utilises la classe CButton.
    si tu veux la modifier tu pars d'une classe existante et tu fais heriter ta classe de CButton ou CCmdTarget au minimum (pour la gestion des messages windows) mais il faudra toujours partir de quelque chose d'existant, à moins que tu sois assez bonne pour arriver à recréer toute seule, l'ensemble des MFC, et de facon aussi bancale et désordonnée que l'a fait microsoft.
    donc, preciser ta question serait bien..

    allez, l'exemple.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CButton *myButton1;
    myButton1 = new CButton();
    // cree un bouton simple
    myButton1.Create(_T("mon petit bouton"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, 
       CRect(10,10,100,30), pParentWnd, 1);
    http://msdn.microsoft.com/en-us/library/bw4e0cww.aspx

    reste bien sur aprés, à gérer les evenements sur ce bouton.
    mais pour ca, reporte toi à la faq, elle continue encore de s'étendre.
    http://cpp.developpez.com/faq/vc/?page=MessageMap

  11. #11
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2010
    Messages : 62
    Par défaut
    Merci pour votreréponse!
    Enfin de compte je vais utiliser des tableaux je pense que ça va me permettre de pouvoir gérer le nombre de collones et de lignes que je peux mettreet rendre visible ou pas mon tableau. je vais essayer.

    Merci encore pour vos réponse.

  12. #12
    Membre confirmé
    Inscrit en
    Mars 2010
    Messages
    62
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mars 2010
    Messages : 62
    Par défaut
    Pour ceux que ça interesse utilisaient un tableau dans les MFC vous pouvez simplement mettre le nombre de collone et de lignes que vous voulez super pratique. Moi j'ai pris ce tableau si: MSHFlexGrid. En m'aidant de ce tutorial:

    http://www.codeguru.com/cpp/controls...n-Visual-C.htm

    Enjoy

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

Discussions similaires

  1. Récupération de variables dynamiques complexes
    Par ludoboy dans le forum ASP
    Réponses: 7
    Dernier message: 24/05/2004, 17h51
  2. Réponses: 4
    Dernier message: 13/05/2004, 13h15
  3. [LG]Problême Variable dynamique de types différents
    Par pierrOPSG dans le forum Langage
    Réponses: 2
    Dernier message: 29/04/2004, 16h01
  4. Réponses: 7
    Dernier message: 16/03/2004, 15h59
  5. [MFC] variables globales en MDI
    Par Kevgeii dans le forum MFC
    Réponses: 3
    Dernier message: 29/11/2003, 21h22

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