[API Win32 sans MFC] Ajouter et récuperer du texte d'un EDIT [Résolu]

Messages postés
346
Date d'inscription
jeudi 1 mai 2003
Dernière intervention
4 avril 2011
- - Dernière réponse : cs_nitrique
Messages postés
346
Date d'inscription
jeudi 1 mai 2003
Dernière intervention
4 avril 2011
- 17 mai 2006 à 16:19
Bonjour à tous,


J'aimerais savoir comment Ajouter et récuperer du texte d'un EDIT créé comme suit:
case WM_CREATE:
hEdit = CreateWindow(_T("EDIT"),_T("Texte"),
  WS_VISIBLE|WS_CHILD|ES_MULTILINE|ES_WANTRETURN|WS_VSCROLL,
  0,25,150,100,hWnd,NULL,hInst,NULL);

J'arrive à remplacer le texte avec: SetWindowText(hEdit,_T("Mon nouveau texte"));
Mais pas à ajouter du texte... (faut-il le récuperer dans une variable et le concatener à chaque fois ?).


J'aimerais également savoir comment récuperer le texte dans une variable CString ?


Merci d'avance.

David, à VERSAILLES
http://www.gentag.fr
Afficher la suite 

Votre réponse

4 réponses

Meilleure réponse
Messages postés
6539
Date d'inscription
lundi 16 décembre 2002
Dernière intervention
22 août 2010
3
Merci
Pour ajouter du texte il y a EM_REPLACESEL
Ca remplace la séléction courante par le texte contenu dans lParam
Si le curseur est à la fin, cela revient a faire une concaténation
Tu peux forcer la position du curseur avec EM_SETSEL

Dans ton titre tu dis sans MFC, pourquoi une CString alors?
Tu récupère dans un char*, très facile de contruire une CString avec ca:
char c[32];
GetWindowText(hEdit, c, 32);
CString str = c;

Merci vecchio56 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de vecchio56
Messages postés
6539
Date d'inscription
lundi 16 décembre 2002
Dernière intervention
22 août 2010
3
Merci
int length = GetWindowTextLength(hedit);
SendMessage(hedit, EM_SETSEL, length, length);
SendMessage(hedit, EM_REPLACESEL, ?, (LPARAM)"texte a ajouter à la fin");

Merci vecchio56 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de vecchio56
Messages postés
346
Date d'inscription
jeudi 1 mai 2003
Dernière intervention
4 avril 2011
0
Merci
Bonjour vecchio56,

Et bien non justement, je travaille avec embedded en unicode et c'est pleins de truc bizzares.
CString str = c; ne marche pas par exemple, il faut faire des casts sans arret.
CString str;
str.format(L"%s",c);
Mais je viens juste de découvrir ça !

Pour EM_REPLACESEL et EM_SETSEL, peux tu me donner un rapide exemple STP car je ne suis pas sur mon poste, je ne peux pas faire des essais.

Merci encore

David, à VERSAILLES
http://www.gentag.fr
Commenter la réponse de cs_nitrique
Messages postés
346
Date d'inscription
jeudi 1 mai 2003
Dernière intervention
4 avril 2011
0
Merci
Ok, je te remercie.

[;)] David, à VERSAILLES
http://www.gentag.fr
Commenter la réponse de cs_nitrique

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.