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 :

Problème avec le tutoriel MFC


Sujet :

MFC

  1. #1
    Membre confirmé

    Homme Profil pro
    automatisme
    Inscrit en
    Octobre 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : automatisme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 59
    Par défaut Problème avec le tutoriel MFC
    Bonjour,
    Je suis entrain de m'entrainer avec le tutoriel MFC proposé par Farscape et j'ai un petit problème avec un de ses exemples. A la page 62 - 63 il montre comment sauvegarder avec deux boutons (le bouton "enregistrer" que l'on a créé et le bouton de sauvegarde dans la toolbar) je pense avoir compris comment ça fonctionne dans les grandes lignes mais j'ai un erreur avec sa fonction
    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
    bool CSampleSDIView::CanSaveData(bool bSetFocus/*=false*/) 
    { 
        UpdateData(TRUE); // mise a jour des données. 
        // tableau des CString associées aux contrôles 
      CString *parString[]={&m_strNom,&m_strPrenom,         
        &m_strAdresse,&m_strAdresse2,&m_strVille,&m_strCdp  }; 
        // tableau des identifiants correspondant 
        UINT arnId[]={IDC_EDITNOM,IDC_EDITPRENOM, IDC_EDITADRESSE, 
                      IDC_EDITADRESSE1,IDC_EDITCDP,IDC_EDITVILLE }; 
        for(int i=0;i<sizeof(parString)/sizeof(CString *);i++) 
        { 
            // si la chaine est vide 
            if(parString[i]->IsEmpty()) 
            { 
                // on redonne la main en saisie au contrôle en question. 
                if(bSetFocus) GetDlgItem(arnId[i])->SetFocus(); 
                return false; 
            } 
        }   
        return true; 
    } 
     
    void CSampleSDIView::OnUpdateFileSave(CCmdUI *pCmdUI) 
    { 
      // TODO: Add your command update UI handler code here 
      pCmdUI->Enable(CanSaveData()); 
    }
    Visual me dit que la fonction CanSaveData ne prend pas zero argument. Je ne vois pas si il s'agit d'une erreur ou de quelque chose que j'aurais mal fais.

    Si quelqu'un arrive à voir mon erreur je lui en serais très reconnaissant.

  2. #2
    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
    Salut !

    Peut-on voir ton header ?

  3. #3
    Membre confirmé

    Homme Profil pro
    automatisme
    Inscrit en
    Octobre 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : automatisme

    Informations forums :
    Inscription : Octobre 2012
    Messages : 59
    Par défaut
    salut,
    Voici le header :
    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
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    class CtutomfcView : public CFormView
    {
    protected: // création à partir de la sérialisation uniquement
    	CtutomfcView();
    	DECLARE_DYNCREATE(CtutomfcView)
     
    public:
    	enum{ IDD = IDD_TUTOMFC_FORM };
     
    // Attributs
    public:
    	CtutomfcDoc* GetDocument() const;
     
    // Opérations
    public:
     
    // Substitutions
    public:
    	virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
    protected:
    	virtual void DoDataExchange(CDataExchange* pDX);    // Prise en charge de DDX/DDV
    	virtual void OnInitialUpdate(); // premier appel après la construction
     
    // Implémentation
    public:
    	virtual ~CtutomfcView();
    #ifdef _DEBUG
    	virtual void AssertValid() const;
    	virtual void Dump(CDumpContext& dc) const;
    #endif
     
    protected:
     
    // Fonctions générées de la table des messages
    protected:
    	afx_msg void OnFilePrintPreview();
    	afx_msg void OnRButtonUp(UINT nFlags, CPoint point);
    	afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
    	DECLARE_MESSAGE_MAP()
    public:
    	afx_msg void OnBnClickedButton2();
    	CString m_strNom;
    	CButton m_ButtonRaz;
    	CEdit m_EditNom;
    	CString m_strPrenom;
    	CString m_strAdresse;
    	CString m_strAdresse1;
    	CString m_strCdp;
    	CString m_strVille;
    	afx_msg void OnBnClickedButtonok();
    	afx_msg bool CanSaveData(bool bSetFocus);
    	afx_msg void OnMajRAZButton();
    	afx_msg void OnBnClickedButtonraz();
    	afx_msg void OnFileSave();	
    	afx_msg void OnUpdateFileSave(CCmdUI *pCmdUI);
    };

  4. #4
    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
    En modifiant la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    afx_msg bool CanSaveData(bool bSetFocus);
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    afx_msg bool CanSaveData(bool bSetFocus=false);
    ça devrait aller beaucoup mieux je suppose.

    Bon courage pour la suite

  5. #5
    Membre émérite
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Février 2006
    Messages : 564
    Par défaut
    Salut !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Visual me dit que la fonction CanSaveData ne prend pas zero argument.
    Il faut donc que tu lui indiques un paramètre par défaut sinon tu ne peux pas appeler la fonction CanSaveData() sans paramètre puisque dans ta définition tu lui dit qu'elle prend un paramètre de type booléen.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bool CanSaveData (bool bSetFocus = false);

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

Discussions similaires

  1. [androMDA] - quelques problèmes avec le tutoriel
    Par spidetra dans le forum Maven
    Réponses: 6
    Dernier message: 31/03/2008, 15h55
  2. Réponses: 1
    Dernier message: 17/09/2006, 16h31
  3. énorme problème avec mon interface MFC
    Par cenedra dans le forum MFC
    Réponses: 23
    Dernier message: 17/07/2006, 09h36
  4. énorme problème avec mon interface MFC
    Par cenedra dans le forum C++
    Réponses: 2
    Dernier message: 12/07/2006, 09h54
  5. probléme avec autocompletition ( tutoriel D.cabasson )
    Par kichemans dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 26/04/2006, 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