question toute bête sur les MFC (C++)

question toute bête sur les MFC (C++) - Programmation

Marsh Posté le 10-05-2001 à 14:41:19    

Voila, y parait que les MFC ne seront bientot plus utilisées, mais tant pis, moi, je suis en tain d'apprendre à m'en servir...de toute façon g pas d'autres outils.
 
Je voudrais savoir comment on fait pour aller à la ligne dans un objet CEDIT.
moi pr y afficher du texte, je fait un .SetWindowText("ma chaine" ); mais avec ça, chaque ligne que j'insére écrase la précédante...et tout ça toujours sur la 1ere ligne.
 
Un ancien des MFC, s'il vous plait...?

Reply

Marsh Posté le 10-05-2001 à 14:41:19   

Reply

Marsh Posté le 10-05-2001 à 15:03:10    

On peut mettre plusieurs lignes dans un CEdit en cochant une option (multiline ou Want Return) ceci dit ce n'est pas la bonne méthode et il vaut mieux utiliser une CListBox à la place, ça sera plus simple.
 
Ensuite tu utilises CListBox::AddString() pour ajouter une nouvelle ligne.


---------------
Pipiru piru piru pipiru pi
Reply

Marsh Posté le 10-05-2001 à 15:22:04    

ouais, mais une CLISTBOX c pas du tout pareil...
Moi g besoin d'un champ de texte (il faut par exemple que l'utilisateur puisse sélectionner du texte affiché dans cette zone, puisse le copier !)
g besoin d'un CEDIT, donc tu n'sais pas comment on fait pour aller à la ligne avec ce type de contrôle !?

Reply

Marsh Posté le 10-05-2001 à 15:37:11    

Tu peux aussi passer par une variable DDX.
 
Comme ca tu te sers d'un CString et le tour est joue. C'est vraiment ce qu'il y a de plus simple.
 
Mais il faut de toutes manieres que tu coches multiline dans les propietes de ton CEdit.

Reply

Marsh Posté le 10-05-2001 à 15:43:14    

oula, j'connais pas les variables DDX moi...

Reply

Marsh Posté le 10-05-2001 à 15:47:18    

Tu utilises pas le class wizard ? (Ctrl+W)

Reply

Marsh Posté le 10-05-2001 à 15:50:12    

ha, en rajoutant un membre value sur l'ID de mon CEDIT !?
mais avec ça, c pareil, ça me dit pas comment aller à la ligne, y va tout fouttre sur une seule ligne !

Reply

Marsh Posté le 10-05-2001 à 15:57:47    

Si t'as appele ta variable m_osChaine et que tu tapes un truc du genre :
 
m_osChaine = _T("premiere ligne\r\nSeconde ligne" );
UpdateData(FALSE);
 
ca passe. Encore une fois, uniquement si t'as coche la case multiline. Sinon, je crois qu'il t'affiche les \r\n.
 
J'ai pas teste avec SetWindowText.
Si tu veux rajouter des lignes sans que ca n'efface ce qu'il y avait avant, tu peux faire un truc du genre :
 
UpdateData();
m_osChaine += _T("\r\nAutre ligne" );
UpdateData(FALSE);

Reply

Marsh Posté le 10-05-2001 à 16:01:05    

darthguy et moi te l'ont déjà dit : "tu coches multiline dans les propietes de ton CEdit"
 
Ensuite tu utilises le wizard pour associer une CString à ton CEdit (par exemple CString m_MonCEdit)  
 
Enfin, pour ajouter la chaine CString nouvelleLigne à ton CEdit, tu fais:

Code :
  1. UpdateData();
  2. m_MonCEdit += nouvelleLigne;
  3. UpdateData(FALSE);


 
[/html]


---------------
Pipiru piru piru pipiru pi
Reply

Marsh Posté le 10-05-2001 à 16:02:22    

Arfff, darthguy copieur :-)))
 
Toi aussi tu fais UpdateData() et non pas UpdateData(TRUE) ? Ya que comme ça que j'arrive à m'en souvenir :-)

 

[edit]--Message édité par n0mad--[/edit]


---------------
Pipiru piru piru pipiru pi
Reply

Marsh Posté le 10-05-2001 à 16:02:22   

Reply

Marsh Posté le 10-05-2001 à 16:16:02    

Citation :

Toi aussi tu fais UpdateData() et non pas UpdateData(TRUE) ? Ya que comme ça que j'arrive à m'en souvenir :-)


 
Heu ouaip.  
Et j'ai mis sacrement longtemps a le memoriser ! ;)

Reply

Marsh Posté le 10-05-2001 à 16:28:09    

Merci les jeunes (enfin je sais pas mais bon)
j'devrai m'en tirer sans pb grâce à tout ça...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed