cs_nitrique
Messages postés344Date d'inscriptionjeudi 1 mai 2003StatutMembreDernière intervention 4 avril 2011
-
17 mai 2006 à 12:15
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019
-
17 mai 2006 à 17:55
Bonjour à tous,
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 ?
ymca2003
Messages postés2070Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 3 juillet 20067 17 mai 2006 à 12:48
Pour rajouter du texte, il faut effectivement récupérer dans un buffer et concaténéer (attention aux tailles)
char buf[256];
GetWindowText(hwnd, buf, 256);
strcat(buf, " ajout");
SetWindowText(hwnd, buf);
GetWindowTextLength(hwnd) donne la taille du texte actuel.
les CString c'est MFC donc tu peux pas utiliser en API pur.
cs_nitrique
Messages postés344Date d'inscriptionjeudi 1 mai 2003StatutMembreDernière intervention 4 avril 20111 17 mai 2006 à 12:57
Bonjour ymca2003,
Je développe avec embedded et c'est un peu particulier... J'ai accès à CString (j'ai inclus Afx.h).
Mais j'ai contourné le pb en utilisant un TCHAR... Ce m'est imposé par l'IDE (je suis en unicode).
N'y a t-il pas moyen d'allouer dynamiquement la taille du tableau TCHAR ?
unsigned int TextLen = 0; // Va contenir le nombres de caractères dans le EditBox
TCHAR LeText[255];
TextLen = GetWindowTextLength(hEdit); // Récupère le nombres de caractères dans le EditBox
if (TextLen) { // S'il n'est pas vide
//LeText = new TCHAR[(TextLen + 2)]; // Alloue de la mémoire pour stocker le texte: NE MARCHE PAS
if (GetWindowText(hEdit,LeText,(TextLen+1))) // Si aucune erreur, Affiche le texte
MessageBox(hWnd,LeText,_T("Texte"),MB_OK);
}