[C++, WinAPI] Pobieranie zaznaczonego tekstu z RichEdita
Ostatnio zmodyfikowano 2012-02-15 10:18
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: 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? |
|
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. |
|
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(). |
|
« 1 » |