Recuperation valeur editbox

fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008 - 4 juin 2007 à 11:11
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008 - 6 juin 2007 à 10:11
Bonjour,
Je cherche a recupere la valeur d'une editbox, mais ca me revnoi que le premier caractere a chaque fois?
J'essaye avec GetWindowText, et aussi avec WM_GETTEXT, mais ca me renvoi "E" a chaque fois, si par exemple mon edit contitent "ESSAI1" :
 char szBuf[256]; 
  SendMessage(hEdit[i],WM_GETTEXT,(WPARAM)SendMessage(hEdit[i],WM_GETTEXTLENGTH,0,0)+1,(LPARAM)szBuf);
  char test[256]; 
  GetWindowText(hEdit[i], (LPTSTR) test, 256 );

Quelqu'un a t il une idée , sachant que je ne veux pas recuperer sous forme de TCHAR...

3 réponses

SAKingdom Messages postés 3212 Date d'inscription lundi 7 novembre 2005 Statut Membre Dernière intervention 16 février 2009 15
4 juin 2007 à 16:19
Tu compiles bien en ascii et non pas en unicode ?

C++ (@++)<!--
0
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008
4 juin 2007 à 17:05
Euh ben je compile en Win32(WCE emulator) Debug...

Je suis sous embedded VIsual C++, je vois pas trop ce que tu veux dire, je peux changer ces parametre? car sinon j'utilise une methode passant mes parametres de ascii en unicode lorsque je dois le faire sinon. Mais la ca compile res bien, et avec la methode c'est pire ^^
0
fredsor Messages postés 198 Date d'inscription lundi 24 avril 2006 Statut Membre Dernière intervention 3 avril 2008
6 juin 2007 à 10:11
Resolu!
En fait SAKingdom tu avais raison!
J'arrivais bien a recuperer mon contenu, mais que en recuperant sous forme de  TCHAR*... ce qui ne m'arrangeais pas car je devais concatener ce resultat à la suite d'une autre chaine.
Donc il a fallu passer ce TCHAR* en char*, d'ou la notion d'ascii et unicode!
Bien joué et Merci SAKingdom, deja deux fois que tu m'enleve une epine du pied!
Pour ceux que ca interesse, voici mes fonctions permettant de passer de l'un vers l'autre :

// cette fonction permet de convertir une chaîne ANSI en UniCode
unsigned short*  ConvertAnsiToUnicode(char* szAnsi)
{
 //Trouver la taille finale pour réserver le buffer
 int Size = MultiByteToWideChar (CP_ACP, 0, szAnsi, -1, NULL, 0) ;
 LPWSTR wUnicode = new WCHAR[Size];
 //effectuer la conversion
 MultiByteToWideChar (CP_ACP, 0, szAnsi, -1, wUnicode, Size) ;
 return wUnicode;
}




// cette fonction permet de convertir une chaîne UniCode en ANSI


char* ConvertUnicodeToAnsi(TCHAR* wUnicode)
{
 int bTemp =(sizeof(wUnicode)/sizeof(TCHAR));
 int Size = WideCharToMultiByte(CP_ACP, 0, wUnicode, -1, NULL, 0, NULL, &bTemp) ;
 LPSTR szAnsi = new char[Size];
 WideCharToMultiByte(CP_ACP, 0, wUnicode, -1, szAnsi, Size, NULL, &bTemp) ;
 return szAnsi;
}
0