[MFC] CEdit multiline

Résolu
Anthony -  
 Anthony -
MFC CEdit multiline
bonjour j'aimerai créer une CEdit multiligne dans une application MFC.
Je choisit donc le style multiligne et je lui passe une chaine de caractere.

CString string = "....";

m_CEditModifyStyle(0, ES_MULTILINE | ES_AUTOHSCROLL, 0);
m_CEditSetWindowText(string);


Ma question est : Est ce que je dois spécifier moi même les "\n" a mettre dans la chaine ou est ce qu'il le fait automatiquement en fontion de la taille de mon CEdit.

J'ai trouvé une fonction "SetTabStop" dans la doc mais elle ne marche pas non plus
// bool b = m_CEdit.SetTabStops(45);


Quelqu'un pourrait -il m'aider
Merci

1 réponse

TanK
 
Salut, je viens de voir ton pb et comme j'ai la solution, je me permets de te répondre.

Alors en gros tu as ton controle CEdit lié à une variable CString m_CEdit il me semble.

Bon si tu veux insérer une nouvelle chaine CString newChaine et que tu veux mettre un retour à la ligne, tu dois le spécifier toi meme.
En gros, tu dois formater ta chaine en insérant les caractères \r\n pour le retour complet à la ligne:
m_CEdit.Format(_T("%s \r\n"), newChaine);

Bon ici, tu effaces la valeur précédente de ton CEdit. Si tu veux "empiler" les messages, il faut concaténer les chaines. Tu utilises alors une variable intermédiaire que tu concatène à ton CEdit

CString s;
s.Format(_T("%s \r\n", newChaine);
m_CEdit += s;

Et voilà le tour est joué
0
Anthony
 
ok merci Tank,
c'est juste dommage qu'il n'existe rien qui ajoute les \n tout seul.

Car ma chaine est plus longue que la largeur de mon CEdit donc pour que mon texte ne ressemble pas a n'importe quoi, je doit compter le nombre de caractere, verifier que c'est un espace, reculer tant que je n'en trouve pas un, ajouter un \n ....
En gros, une fonction de gros bidouillage !!

Merci quand même
0