carlosmay Temat założony przez niniejszego użytkownika |
[C++] WinAPI Jak znieść limit znaków dla kontrolki EDIT? » 2015-08-22 00:40:16 [c++] WinAPI WM_COMMAND: kliknięcie na kontrolkę EDIT zamyka całe okno.Pytanie dotyczy programu z tego tematu. Jak wczytuje do pola tekstowego (EDIT) tekst z pliku to bez łaski wyświetla cały tekst (ok. 700 000 znaków). Jednak gdy wpisuję do pola tekstowego tekst to pozwala na wpisanie tylko ok 30 000 znaków. EM_SETLIMITTEXT - znalazłem coś takiego. Style EM_SETLIMITTEXT I EM_LIMITTEXT są rozpoznawalne, ale styl EM_EXLIMITTEXT niestety nie jest rozpoznawany (visual 15). Nie bardzo wiem jak to dalej zrobić. Jak inaczej zdjąć limit znaków wpisywanych do pola textowego. |
|
Monika90 |
» 2015-08-22 09:36:00 Style EM_SETLIMITTEXT I EM_LIMITTEXT |
To nie są style, to są komunikaty. To też jest komunikat, ale nie dotycz on kontrolki edit lecz rich edit. |
|
carlosmay Temat założony przez niniejszego użytkownika |
» 2015-08-22 11:58:50 Znalazłem to w jakimś poście, ale jeśli to nie jest to, czego szukać?
|
|
Monika90 |
» 2015-08-22 14:38:49 To prawdopodobnie jest to, ale co ty z tym robisz? To są komunikaty które należy wysłać (SendMessage) do kontrolki żeby zmienić limit. |
|
carlosmay Temat założony przez niniejszego użytkownika |
» 2015-08-22 14:54:58 Z początku próbowałem użyć jako stylu kontrolki ale doczytałem temat i odpuściłem. Chciałem też wysłać jak przy zmianie czcionki, ale EM_EXLIMITTEXT od razu jest podkreślony (niezdefiniownay). SendMessage( g_hEdit, EM_EXLIMITTEXT, NULL, NULL ); Nie mam innego pomysłu. |
|
carlosmay Temat założony przez niniejszego użytkownika |
» 2015-08-25 15:29:13 Poszukałem, poszperałem i znalazłem takie coś. Nie do końca o to chodziło, ale jak nie da rady inaczej... #include <Richedit.h>
LoadLibrary( TEXT( "Riched32.dll" ) ); hEdit = CreateWindowEx( WS_EX_CLIENTEDGE, L"RICHEDIT", NULL, WS_CHILD | WS_VISIBLE | WS_BORDER | ES_MULTILINE | WS_VSCROLL | ES_AUTOVSCROLL, 10, 10, 500, 300, hWnd, NULL, hInst, NULL ); if( !hEdit ) return 1;
SendMessage( hEdit, EM_EXLIMITTEXT, NULL,( LPARAM ) 800000 );
Trochę szperałem i nie znalazłem nic co całkowicie zdejmuje limit długości pola tekstowego. (Jeśli nie da rady inaczej to popracuje nad edycją pola i wykrywaniem końca pola tekstowego). Dzięki Monika90 przynajmniej nie błądziłem po omacku. Edit: Jeśli jest taka możliwość żeby sprawdzić długość bufora kopiującego (ctrl + c) i użyć tej wartości do ustawienia długości pola też byłoby fajnie. |
|
pekfos |
» 2015-08-25 17:10:43 |
|
« 1 » |