Pb d'insertion dans une chaine de caractère ...

Tribute2U Messages postés 52 Date d'inscription vendredi 6 février 2004 Statut Membre Dernière intervention 28 mars 2006 - 17 févr. 2004 à 18:56
Tribute2U Messages postés 52 Date d'inscription vendredi 6 février 2004 Statut Membre Dernière intervention 28 mars 2006 - 17 févr. 2004 à 23:14
Bsr, je suis sur un projet MFC sous VC++ et j'aurai aimé pouvoir faire 2 choses :
1) : pouvoir insérer un saut de ligne tout les 20 ou 30 caractère. J'ai fais un boucle pour cela mais pour l'insertion d'un saut de ligne '\r\n' ne marche pas.

2): éviter que lorsque l'utilisateur appuie sur Echap, la fenêtre se ferme. J'ai essayé d'intercepter le signal WM_DESTROY mais cela ne marche pas.

Alors si quelqu'un pouvais m'éclairer sur ces points se serai gentil.
Merci d'avance...
Partagez votre savoir :-)

5 réponses

garslouche Messages postés 583 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 29 mai 2015 1
17 févr. 2004 à 19:58
1)
Si ton texte est dans une CString appelée strText

CString strInsere = "\n\r";
int nDecale = 20;

for (int i = nDecale; i<strText.GetLength(); i+= nDecale + strInsere.GetLength())
strText = strText.Left(i) + strInsere + strText.Mid(i);

2)
Clic-droit sur la classe correspondant à ta Dlg -> Add Virtual Function -> PreTranslateMessage

Et dans la fonction créée tu mets
if (pMsg->message WM_KEYDOWN && pMsg->wParam VK_ESCAPE)
return FALSE;

return CDialog::PreTranslateMessage(pMsg);

On ne force pas une curiosité, on l'éveille.
.................................................Daniel Pennac
0
Tribute2U Messages postés 52 Date d'inscription vendredi 6 février 2004 Statut Membre Dernière intervention 28 mars 2006
17 févr. 2004 à 21:35
Merci beaucoup de ton aide

Si je peux abuser de ton aide une fois de plus, j'aimerai savoir comment faire pour que le curseur suive le fil de la conversation. Je m'explique :
je programme une messagerie instantannée donc je dois afficher les messages, pour ca pas de pb mais lorsque la ListBox est "pleine" il y a un Scroll qui est activée pour montrer que les messages continuent mais le curseur n'est pas sur le dernier message recu. Comment faire pour cela ?

Partagez votre savoir :-)
0
Tribute2U Messages postés 52 Date d'inscription vendredi 6 février 2004 Statut Membre Dernière intervention 28 mars 2006
17 févr. 2004 à 21:57
Ce que tu m'as conseillé de faire marche pour le cas avec Echap mais l'insertion d'un saut de ligne non. En fait c'est pour afficher dans un ListBox et lorsqu'il doit y avoir un saut de ligne il y a 2 petit rectangles noirs a la place et la ligne continue son petit bonhomme de chemin :-(
Pour mettre dans un fichier ca marche, dans un MessageBox aussi mais pas pour une ListBox.
Aurais-tu une solution stp ?

Partagez votre savoir :-)
0
garslouche Messages postés 583 Date d'inscription mardi 26 novembre 2002 Statut Membre Dernière intervention 29 mai 2015 1
17 févr. 2004 à 22:38
Pour ta 1ere question : tu peux utiliser SetTopIndex si c'est juste pour faire du scroll ou SetSel si tu veux selectionner un item particulier
Pour ta 2e question : les ListBox ne permettent pas d'avoir des items sur plusieurs lignes. C'est une ligne=un item. Donc soit tu utilises un EditBox soit tu ajoutes un item par ligne.

On ne force pas une curiosité, on l'éveille.
.................................................Daniel Pennac
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tribute2U Messages postés 52 Date d'inscription vendredi 6 février 2004 Statut Membre Dernière intervention 28 mars 2006
17 févr. 2004 à 23:14
Merci
Partagez votre savoir :-)
0
Rejoignez-nous