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

Signaler
Messages postés
7
Date d'inscription
mercredi 4 mai 2005
Statut
Membre
Dernière intervention
24 novembre 2007
-
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
-
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

Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13
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";
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
C'est surtout nettement plus performant, on ne sollicite pas inutilement l'allocateur mémoire.

ciao...
BruNews, MVP VC++