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

cs_nitrique 346 Messages postés jeudi 1 mai 2003Date d'inscription 4 avril 2011 Dernière intervention - 17 mai 2006 à 12:12 - Dernière réponse : cs_nitrique 346 Messages postés jeudi 1 mai 2003Date d'inscription 4 avril 2011 Dernière intervention
- 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
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 17 mai 2006 à 15:39
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 121 internautes ce mois-ci

Commenter la réponse de vecchio56
Meilleure réponse
vecchio56 6539 Messages postés lundi 16 décembre 2002Date d'inscription 22 août 2010 Dernière intervention - 17 mai 2006 à 16:13
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

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 121 internautes ce mois-ci

Commenter la réponse de vecchio56
cs_nitrique 346 Messages postés jeudi 1 mai 2003Date d'inscription 4 avril 2011 Dernière intervention - 17 mai 2006 à 15:54
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
cs_nitrique 346 Messages postés jeudi 1 mai 2003Date d'inscription 4 avril 2011 Dernière intervention - 17 mai 2006 à 16:19
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.