Récupérer le texte d'un rich edit créé par createwindow

Neomaster951 Messages postés 7 Date d'inscription mercredi 4 mai 2005 Statut Membre Dernière intervention 24 novembre 2007 - 14 sept. 2007 à 18:52
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 14 sept. 2007 à 23:12
Bonjour, j'aimerais savoir comment récupérer le texte d'une richedit box créée par CreateWindow. Pour entrer mon texte dans le contrôle, j'utilise sans problème: (mais si c'est plus simple, je peut la changer par une edit box).

CString sText = "Texte a ajouter"; //Ajouter du texte
SendMessage(hTypeZone, EM_REPLACESEL, 0, (LPARAM)(LPCTSTR) sText);

Cependant, je n'arrive pas a trouver comment récupérer ce texte... le code:

HWND hTypeZone;

LRESULT CALLBACK MainWndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
    LoadLibrary("RICHED20.DLL");
   
    switch (uMsg)
    {
        case WM_CREATE:
            hTypeZone = CreateWindow("RichEdit20A", "", WS_CHILD | WS_VISIBLE | WS_BORDER | ES_WANTRETURN, 5, 410, 610, 24, hwnd, NULL, hinst, NULL);
        }
    }
}

J'ai essayé ça:

GETTEXTLENGTHEX gtlx;
gtlx.flags = GTL_DEFAULT;
gtlx.codepage = CP_ACP;

LRESULT nLength = SendMessage(myTypeZone, EM_GETTEXTLENGTHEX, (WPARAM)&gtlx, 0);
cBuffer = new char[nLength + 1];

GETTEXTEX gtx;
gtx.cb = sizeof(char) * (nLength + 1);
gtx.flags = GT_DEFAULT;
gtx.codepage = CP_ACP;
gtx.lpDefaultChar = NULL;
gtx.lpUsedDefChar = NULL;

nLength = SendMessage(myTypeZone, EM_GETTEXTEX, (WPARAM)&gtx, (LPARAM)cBuffer);
MessageBox(NULL, cBuffer, "bla", MB_OK);

Cependant, sur la message box, il s'affiche toujours un truc du genre "à<<<<<<<<bîbîbîbî"

Une idée? Merci d'avance ^^

2 réponses

racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
14 sept. 2007 à 22:30
Salut,
Je ne vois rien d'anormal dans ton code de récupération du texte. Juste une remarque, pourquoi tu utilises CString?  C'est plus simple de faire:
char sText[]="Texte à ajouter";
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
14 sept. 2007 à 23:12
C'est surtout nettement plus performant, on ne sollicite pas inutilement l'allocateur mémoire.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous