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 :

[D�butant][MFC] Conversion Casse CEdit vers ...


Sujet :

MFC

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    88
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 88
    Par d�faut [D�butant][MFC] Conversion Casse CEdit vers ...
    Bonjour,

    voici mon probl�me:

    J'ai une classe:
    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
     
    class CFiche  
    {
    public:	
    	int m_edit_ref1;
    	char m_edit_ref2;
    	int m_edit_ref3;
     
    	CString client[20],lieu[20],type[30];
     
    	char m_edit_mod1;
    	int m_edit_mod2;
     
    	unsigned int date;
    public:
    	CFiche();
    	virtual ~CFiche();
    	};

    Ensuite dans une fonction OnAjouter, je souhaite enregistrer des champs CEdit dans cette classe puis les �crire dans un fichier, ici je n'ai essay� qu'avec le champ IDC_EDIT_CLI (ajout� comme variable de type CString dans ClassWizard):
    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
     
    void CNewModalInfo::OnAjouter() 
    {
    	// TODO: Add your control notification handler code here
     
    	CFiche *pfic;
    	CEdit* pclient;
     
    	pclient = (CEdit*) GetDlgItem(IDC_EDIT_CLI);
    	GotoDlgCtrl(pclient);
     
    	pfic=new CFiche;
     
    	pfic->client= * pclient;
     
    	//Ecriture des caractéristiques dans un nouveau fichier
     
    	//CStdioFile fic ("c:\\Ref1.txt", CFile::modeCreate | CFile::modeWrite | CFile::typeText | CFile::modeNoTruncate  );
    	//fic.WriteString("Lieu:\n");
    	//fic.WriteString(plieu);
     
    	//fic.Close();
    }
    Le probl�me, c'est que j'ai toujours une erreur de type:
    cannot convert from 'class CEdit' to 'class CString [20]
    Pourtant mon controle CEdit IDC_EDIT_CLI est d�fini comme CString.

    O� est mon erreur?

    Je dois aussi enregistrer des champs de type int ou unsigned int, est ce que j'aurais le m�me probl�me?

    Merci d'avance.

  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
    Par d�faut
    on ne d�finit pas un cstring avec des []
    ca, c'�tait bon du temps des tableaux de caract�res.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    CString client, lieu, type;
    ca suffit

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 88
    Par d�faut
    OK merci, j'ai pas encore trop l'habitude.

    J'ai chang� �a et maintenant j'ai un autre message d'erreur qui est apparement lui aussi un pb de conversion (je ne comprends plus rien � toutes ces histoires de conversions):
    error C2679: binary '=' : no operator defined which takes a right-hand operand of type 'class CEdit' (or there is no acceptable conversion)
    sur cette ligne:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    	pfic->client= * pclient;
    :

  4. #4
    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
    Par d�faut
    il faut utiliser GetWindowText pour r�cuperer la valeur du CEdit http://msdn.microsoft.com/library/de...windowtext.asp

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 88
    Par d�faut
    En fait, j'aurais bien aim� savoir d'o� vient ce probl�me de conversion.

    Pourquoi un CString (du controle CEdit) ne peut-il pas �tre affect� � un autre CString (de ma classe CFiche)?

    Merci.

  6. #6
    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
    Par d�faut
    ce n'est pas un probl�me de conversion, mais d'utilisation

    Pour r�cuperer la valeur d'un Edit, tu dois faire comme indiqu� dans le lien que je t'ai donn�.

    C'est � dire :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    pclient->GetWindowText(pfic->client);

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 88
    Par d�faut
    J'ai fait ce que tu m'as dit et je n'ai plus d'erreur de compilation mais maintenant j'ai un bug: l'exe se lance et quant je clique sur le bouton Ajouter de la boite "Fenetre blanche" puis "Terminer maintenant".

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    void CNewModalInfo::OnAjouter() 
    {
    	// TODO: Add your control notification handler code here
     
    	CFiche *pfic;
    	CEdit* pclient;
     
    	pclient->GetWindowText(pfic->client);
     
    	MessageBox(pfic->client,"Test",MB_OK);
     
    }
    Je pr�cise que �a plante m�me si je ne mets pas la MessageBox.


  8. #8
    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
    Par d�faut
    t'aurais pas oublier de mettre
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    pclient = (CEdit*) GetDlgItem(IDC_EDIT_CLI);

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 88
    Par d�faut
    Exact, j'avais oubli� mais �a buge encore "...exe a g�n�r� une erreur.....
    Voulez vous envoyer...":

    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
     
    void CNewModalInfo::OnAjouter() 
    {
    	// TODO: Add your control notification handler code here
     
    	CFiche *pfic;
    	CEdit* pclient;
     
    	pclient = (CEdit*) GetDlgItem(IDC_EDIT_CLI);
    	pclient->GetWindowText(pfic->client);
     
    	MessageBox(pfic->client,"Test",MB_OK);
     
     
    	/*CStdioFile fic ("c:\\Ref1.txt", CFile::modeCreate | CFile::modeWrite | CFile::typeText | CFile::modeNoTruncate  );
    	fic.WriteString("Lieu:\n");
    	fic.WriteString(pfic->client);
     
    	fic.Close();*/
    }
    J'ai un warning comme quoi une variable n'est pas initialis�e:
    warning C4700: local variable 'pfic' used without having been initialized
    Est ce que cela peut venir de l�?

  10. #10
    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
    Par d�faut
    ah ... ca c'est sur !

    CFiche est un pointeur, non initialis� !

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    CFiche *pfic = new CFiche();
    Pourquoi utiliser un pointeur d'ailleurs ?
    Ne pas oublier de lib�rer l'objet aussi !

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

    Informations forums :
    Inscription : Janvier 2006
    Messages : 88
    Par d�faut
    Super �a marche, merci beaucoup!


    J'ai utilis� un pointeur parce que je l'avais vu comme �a dans un exemple et je crois que maintenant que �a marche je vais plus y toucher.

    Pour lib�rer l'objet, c'est avec "Delete" je crois, je vais essayer.

    Remerci.
    A+

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. ConversioN C++.net vers visual C++ mfc
    Par ricky78 dans le forum MFC
    R�ponses: 5
    Dernier message: 13/06/2007, 17h03
  2. R�ponses: 11
    Dernier message: 03/05/2006, 17h06
  3. [Think Pascal] Portage/conversion Think Pascal vers MAC/Windows/Linux
    Par Alain Vitry dans le forum Autres IDE
    R�ponses: 1
    Dernier message: 19/03/2005, 11h24
  4. R�ponses: 6
    Dernier message: 16/05/2004, 19h03
  5. Conversion distance , angle vers coordonn�es de points
    Par mat.M dans le forum Algorithmes et structures de donn�es
    R�ponses: 2
    Dernier message: 26/03/2004, 22h55

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