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 :

Passer des variables d'un dialog à un Doc


Sujet :

MFC

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    93
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 93
    Par d�faut Passer des variables d'un dialog à un Doc
    Salut, j'ai un formulaire qui est bas� sur un CDIALOG, car je l'appelle d'un sous-dialog qui lui est appel� d'un FormView...

    Je voudrais pendre les informations de mon "formulaire" et transmettre mes variables dans mon tableau ObjectArray qui est dans mon Doc. Comment faire? Le monde qui essaye de m'aider me dise que jaurais dut tout bas� sur un FormView mais je suis s�re que ca se fait a partir de dialog.

    Merci de votre aide
    Thom

  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
    salut,
    tu peux repreciser l'ordre d'appel des fenetres parce que pour moi c'est pas clair.
    c'est une CDialog appell�e � partir d'une CFormView ?
    pour acceder au document il r�cuperer la view active.
    voir faq:
    http://c.developpez.com/faq/vc/?page...k#GetActiveWnd
    apres il suffit de faire GetDocument() pour avoir le document.

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    93
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 93
    Par d�faut
    Salut, ok en effet c'est pas trop trop clair :p.

    Mon projet est bas� sur un CFormView ensuite ce CFormView appelle un CDialog qui est un menu et � partir de ce menu je clique sur un bouton qui m'am�ne sur un autre CDialog qui contient mon formulaire. Bon c'est a partir de ce formulaire que je veux transmettre mes variable a mon Doc, mais j'ai essayer avec un GetDocument, mais faut etre sur le meme niveau... faut-il faire un getParent ou quelque chose de-meme

    CFORMVIEW -> CDialog -> CDialog(Formulaire)

    Merci
    Thom

  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
    ma reponse precedente devrait convenir voir la faq..

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    93
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 93
    Par d�faut
    Cela fonctionne meme si je suis sur un formview SDI? pcq il dise MDI sur la FAQ

    Merci

  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 peux faire �a:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    static_cast<CFrameWnd *>(AfxGetMainWnd())->GetActiveDocument();

  7. #7
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    93
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 93
    Par d�faut
    La ligne dont tu m'as donn� me retourne un CDocument, mais je voudrais le mettre en ma classe d�riv� de CDocument.

    Ce que j'ai faite c'est :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    private:
    CProjetDoc Doc* m_pDoc;
    ensuite j'ai mit :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    void CGESTION_AJOUTDOC::OnEnregdoc() 
    {
        // TODO: Add your control notification handler code here
        UpdateData(TRUE);
        m_pDoc = static_cast<CFrameWnd *>(AfxGetMainWnd())->GetActiveDocument();
     
    }
    Bon quand je fais ca, ca me renvoit un erreur qui dit:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    error C2440: 'static_cast' : cannot convert from 'class CDocument *' to 'class CProjetDoc *'
    Vois-tu comment forcer car j'ai essayer dautre mani�re �tape par �tape et il veut pas c toujours le m�me probl�me

    Merci
    Thom

  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
    Par d�faut
    salut,
    c'est la bonne commande.
    il suffit de caster le getdocument sur ta classe .
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
     m_pDoc = static_cast<CProjetDoc *>(static_cast<CFrameWnd *>(AfxGetMainWnd())->GetActiveDocument());

  9. #9
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    93
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 93
    Par d�faut
    Salut merci, mais j'avais d�j� essayer de le caster ainsi et il me renvoie la m�me erreur!! Sniff...

    Si ta une autre m�thode je serais heureux :p

    Merci
    Thom

  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
    hum c'est pas normal
    je peux voir l'erreur provoqu�e par mon code ?

  11. #11
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    93
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 93
    Par d�faut
    Oui alors quand je met ton code voil� :
    erreur:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    error C2440: 'static_cast' : cannot convert from 'class CDocument *' to 'class CProjetDoc *'
            Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
    cela apparait quand je met:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    void CGESTION_AJOUTDOC::OnEnregdoc() 
    {
        // TODO: Add your control notification handler code here
        UpdateData(TRUE);
     
     m_pDoc = static_cast<CProjetDoc *>(static_cast<CFrameWnd *>(AfxGetMainWnd())->GetActiveDocument());     
     
    }
    Merci
    Thom

  12. #12
    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
    voila l'interet du static_cast d�montr� ...
    si le static_cast echoue c'est que ta classe CProjetDoc n'est pas d�riv�e de la classe CDocument.


  13. #13
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    93
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 93
    Par d�faut
    Salut, il me semble bien quel soit d�riv� de CDocument
    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
     
    #if _MSC_VER > 1000
    #pragma once
    #endif // _MSC_VER > 1000
    #include "Doc.h"
     
    class CProjetDoc : public CDocument
    {
    protected: // create from serialization only
        CProjetDoc ();
        DECLARE_DYNCREATE(CProjetDoc )
     
    // Attributes
    public:
        CObArray m_oaDocuments;
        int m_iPersCour;
    // Operations
    public:
    Il y a til un Include que je n'ai pas fait, pourtant quand on oublie un include ya tjrs 102 erreurs!!:p

    C'est difficile des fois les MFC de C++ j'aime mieux je crois le C#

    Faudrait-il que j'utilise de DoModal pour cr�er mes fenetre?...

    merci
    Thom

  14. #14
    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
    il y a autre chose c'est pas possible.

  15. #15
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    93
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 93
    Par d�faut
    Si tu te connecte sur Skype jpourrais tenvoyer mon projet et tu checkeras


    Thom

  16. #16
    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
    re,
    bien la pre-declaration de la classe document sans inclure le .h contenant la classe ne permet pas au compilateur de determiner sa definition et donc l'heritage de cette classe (CProjetDoc) d'ou l'erreur .
    il te suffira de rajouter dans le source ou tu fais le cast l'include correspondant � la classe document.

  17. #17
    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
    pense � mettre r�solu a ton post ,si c'est ok (avec le menu outils de la discussion)

Discussions similaires

  1. R�ponses: 4
    Dernier message: 26/05/2006, 17h17
  2. R�ponses: 6
    Dernier message: 19/12/2005, 13h41
  3. R�ponses: 11
    Dernier message: 09/12/2005, 14h59
  4. [C#][XSLT] Passer des variables
    Par Landolsi dans le forum XSL/XSLT/XPATH
    R�ponses: 2
    Dernier message: 30/09/2005, 14h26
  5. R�ponses: 3
    Dernier message: 03/02/2005, 13h07

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