Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[C++, WinAPI] Pobieranie zaznaczonego tekstu z RichEdita

Ostatnio zmodyfikowano 2012-02-15 10:18
Autor Wiadomość
xevuel
Temat założony przez niniejszego użytkownika
[C++, WinAPI] Pobieranie zaznaczonego tekstu z RichEdita
» 2012-02-14 10:33:10
Chcę pobrać zaznaczony tekst z RichEdita. Na MSDN-ie znalazłem komunikat EM_GETSELTEXT. Jednak, gdy go używam w takiej postaci:
C/C++
LPSTR buffer =( LPSTR ) GlobalAlloc( GPTR, 1024 );
int a = SendMessage( hRich, EM_GETSELTEXT, 0,( LPARAM ) buffer );
GlobalFree( buffer );
To pobiera tylko pierwszą literę zaznaczenia, mimo że a zawiera prawidłową liczbę (według MSDN liczba skopiowanych znaków) która miała być pobrana. Np. Przy tekście "http://abc.com" buffer zawiera tylko "h", a a zawiera długość tego ciągu.

Tak samo się dzieje przy użyciu
char buffer[ 1024 ];
. Czy ktoś wie co jest źle? Jest inna możliwośc pobrania tylko kawałka tekstu?
P-50728
DejaVu
» 2012-02-14 14:21:42
Alokujesz bufor, zwalniasz bufor, a gdzie go 'kopiujesz'? :) Zwracaną wartością jest liczba skopiowanych znaków, więc jeżeli liczba ta jest odpowiednio duża to znaczy, że kopiowanie się powiodło i co najwyżej źle obsługujesz później odczytane wyniki.
P-50743
xevuel
Temat założony przez niniejszego użytkownika
» 2012-02-15 10:18:36
MessageBox(), SetWindowText() używałem i nigdy wcześniej nie było źle. Tym razem nie działa.
W każdym bądź razie, poradziłem sobie, EM_GETTEXTEX i std::string::substr().
P-50803
« 1 »
  Strona 1 z 1