[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
Statut
Membre
Dernière intervention
4 avril 2011
- - Dernière réponse : cs_nitrique
Messages postés
346
Date d'inscription
jeudi 1 mai 2003
Statut
Membre
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 

4 réponses

Meilleure réponse
Messages postés
6539
Date d'inscription
lundi 16 décembre 2002
Statut
Modérateur
Dernière intervention
22 août 2010
7
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;

Dire « Merci » 3

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

Codes Sources 201 internautes nous ont dit merci ce mois-ci

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

Dire « Merci » 3

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

Codes Sources 201 internautes nous ont dit merci ce mois-ci

Commenter la réponse de vecchio56
Messages postés
346
Date d'inscription
jeudi 1 mai 2003
Statut
Membre
Dernière intervention
4 avril 2011
1
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
Statut
Membre
Dernière intervention
4 avril 2011
1
0
Merci
Ok, je te remercie.

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