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 :

transferè des variables d'un fenetre a une autre


Sujet :

MFC

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut transferè des variables d'un fenetre a une autre
    voila j'ai donc 2 fenetres et j'utilise les variable de ma 1er fenetre dans ma 2ème donc je dois les transferè. on ma dit de les mettre en pointeurs mais je sais pas trop comment faire.

    les valeur sont les tableaus declarè dans OnInitDialog

    merci de m'expliquer la solution

    mon projet:

    http://membres.lycos.fr/theblackreverand/Vendetta%203.rar

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Points : 16 075
    Points
    16 075
    Par défaut
    tu peux par exemple mettre tes variables dans la classe d'application et utiliser le pointeur d'application (avec AfxGetApp) pour les récupérer

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    merci de t'interesser a mon sujet.

    j'ai fait une recherche sur cette fonction(AfxGetApp) sur la faq de VisualC et je pense avoir trouver se qu'il faut. j'ai essayè d'apliquer mais je n'y comprend pas grand chose....

    desolè je suis très nouveaux dans le C et sa me change de VBasic 6....

  4. #4
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par TheBlackReverand
    merci de t'interesser a mon sujet.

    j'ai fait une recherche sur cette fonction(AfxGetApp) sur la faq de VisualC et je pense avoir trouver se qu'il faut. j'ai essayè d'apliquer mais je n'y comprend pas grand chose....
    Pas besoin de se compliquer la tache; si par exemple en cliquant sur "Mes Infos" on ouvre une 2ième fenêtre en modal , déclarer simplement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    void CMaDialogePrincipal::OnButtonMesInfosClick()
    {
    CMesInfosDlg dlg;
    dlg.Info1=info1;
    //.....
    dlg.DoModal();
    }
    Le mieux est de passer une structure initialisée à dlg.

    AfxGetApp n'est pas utilisable pour des CDialog il me semble mais plutot dans une architecture Doc/Vue

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    ok merci donc si j'ai bien compris on met
    1) le nom de ma CDialog utilisè pour le DoModal
    2) un " . "
    3) un therme pour reconnaitre la valeur inseret
    4) "=" et la variable a tranferet

    donc pour recupèrè je fait

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    m_RecupArme_h = FenetreMesInfos.m_Arme_h;

  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

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    desoler de paraitre "con" mais j'ai asser de mal a comprendre, c'est 1 language asser technique que j'ai pas encore assimilè. toute les notions diverse de parent ou autre.

    pour l'instant j'ai sa pour l'execution de ma 2ème fenetre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    CDialog FenetreMesInfos(IDD_MES_INFOS);
     
    FenetreMesInfos.m_Arme_h = 5;
     
    FenetreMesInfos.DoModal();
    et j'ai comme erreur
    D:\Programmes\VisualStudio\MSDev98\MyProjects\Vendetta 3\Vendetta 3Dlg.cpp(256) : error C2039: 'm_Arme_h' : is not a member of 'CDialog'
    d:\programmes\vc98\mfc\include\afxwin.h(2568) : see declaration of 'CDialog'
    si je comprend bien m_Arme_h n'appartient pas a la fenetre donc j'ai essayè avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CDialog FenetreMesInfos(IDD_MES_INFOS);
    CDialog FenetreVendetta(IDD_VENDETTA3_DIALOG);
     
    FenetreVendetta.m_Arme_h = 5;
     
    FenetreMesInfos.DoModal();
    mais l'erreur est la meme

  8. #8
    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
    hum mais la tu as un problème de compréhension du C++,
    la classe CDialog c'est la classe de base il est evident que ta variable ne peut y etre contenu !
    visual t'a généré pour chacune des ressources de dialog une classe dérivée de CDialog .
    il faut utiliser ces classes pour déclarer une variable ...
    exemple tu dois avoir une classe associée a la ressource IDD_MES_INFOS
    en vc6.0 il suffit de faire double clic sur la ressource pour arriver sur la classe associée ou declencher sa génération.

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    oui j'ai une classe pour ma 2ème fenetre(IDD_MES_INFO) c'est CMesInfosDlg.

  10. #10
    mat.M
    Invité(e)
    Par défaut
    Citation Envoyé par TheBlackReverand
    et j'ai comme erreur....
    mais l'erreur est la meme
    parce que la variable est tout bêtement déclarée en membre "private"
    Comme le dit Farscape c'est un pb compréhension C++

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 612
    Points : 338
    Points
    338
    Par défaut
    la variable est declarè dans ma CDialog principale mais elle est en public

    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
     
    class CVendetta3Dlg : public CDialog
    {
    // Construction
    public:
    	CVendetta3Dlg(CWnd* pParent = NULL);	// standard constructor
     
    // Dialog Data
    	//{{AFX_DATA(CVendetta3Dlg)
    	enum { IDD = IDD_VENDETTA3_DIALOG };
    	CString	m_MyPlanifRoute;
    	CString	m_Arme_h;
    	CString	m_Muni_h;
    	//}}AFX_DATA
     
    	// ClassWizard generated virtual function overrides
    	//{{AFX_VIRTUAL(CVendetta3Dlg)
    	protected:
    	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
    	//}}AFX_VIRTUAL
     
    // Implementation
    protected:
    	HICON m_hIcon;
     
    	// Generated message map functions
    	//{{AFX_MSG(CVendetta3Dlg)
    	virtual BOOL OnInitDialog();
    	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
    	afx_msg void OnPaint();
    	afx_msg HCURSOR OnQueryDragIcon();
    	afx_msg void OnMesInfos();
    	afx_msg void OnEspio();
    	afx_msg void OnRessource();
    	//}}AFX_MSG
    	DECLARE_MESSAGE_MAP()
    };

Discussions similaires

  1. Réponses: 1
    Dernier message: 22/11/2007, 22h52
  2. Transferer des données d'un table vers une autre
    Par pooi1 dans le forum VBA Access
    Réponses: 4
    Dernier message: 31/05/2007, 01h05
  3. Réponses: 8
    Dernier message: 11/04/2007, 23h06
  4. Transférer des lignes d'un datastore dans une table SQL
    Par Deedoo2000 dans le forum Powerbuilder
    Réponses: 7
    Dernier message: 30/10/2006, 14h55
  5. [Nommage des variables] Y a-t-il une normalisation ?
    Par Oberown dans le forum Framework .NET
    Réponses: 1
    Dernier message: 22/08/2006, 17h10

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