Klasa CEdit dostarcza usług umożliwiających funkcjonowanie Windows'owych kontrolek edycyjnych. Pole edycyjne jest to prostokątne okienko posiadające styl child, w którym to użytkownik może wprowadzać tekst.
Kontrolkę typu CEdit można stworzyć korzystając albo z gotowych szablonów kontrolek albo wpisując odpowiedni kod. W obu przypadkach należy najpierw wywołać konstruktor CEdit w celu utworzenia obiektu CEdit a następnie wywołać metodę Create aby powiązać standardową kontrolkę Windows z obiektem CEdit.
Proces ten można sprowadzć do wywoływania konstruktora CEdit jeżeli w tym konstruktorze wywołamy metodę Create.
Obiekt CEdit dziedziczy funkcjonalność jaką posiada obiekt CWnd. W celu ustawienbia i pobrania tekstu z kontrolki typu CEdit należy użyć metod SetWindowText oraz GetWindowText będących składowymi obiektu CWnd, które nawet w przypadku gdy kontrolka jest stylu multiline zwracają całą zawartość pola edycji. Również można ustawiać i pobierać tylko część tekstu z kontrolki wykorzystując metody GetLine, SetSel, GetSel i ReplaceSel obiektu CEdit.
Jeśli chcesz obsługiwać komunikaty wysyłane przez przycisk do jego rodzica (przeważnie jest to klasa dziedziczona po CDialog) musisz utworzyć mapę komunikatów oraz funkcje obsługujące te komunikaty. Każdy zapis w mapie komunikatów wygląda następująco:
ON_Notification(id, NazwaFunkcji), gdzie id jest identyfikatorem kontrolki.
Standardowe funkcje obsługujące komunikaty:
| Komunikat wysyłany gdy użytkownik dokona zmian w tekście. | |
| Za mało pamięci aby przydzielić odpowiednią jej ilość. | |
| Użytkownik kliknął na pasku przewijania pionowego. | |
| Kontrolka traci ognisko. | |
| Dozwolona długość tekstu została przekroczona i następne wstawiane litery zostają usunięte. Komunikat jest również wysyłany jeżeli przekroczy się długość kontrolki gdy ta nie ma stylu ES_AUTOSCROLL oraz gdy następna linia nie mieści się a kontrolka nie ma stylu ES_AUTOVSCROLL. | |
| Kontrolka otrzymała ognisko. | |
| Użytkownik kliknął na pasku przewijania poziomego. |
Jeżeli pole edycji zostało utworzone w zasobach okna, to obiekt CEdit jest automatycznie usuwany gdy zamykane jest okienko dialogowe.
Jeżeli pole edycji jest tworzone podczas działania aplikacji to należy samodzielnie zadbać o usunięcie go z pamięci.
| Metody | Opis |
|---|---|
| CEdit | Konstruktor obiektu CEdit. |
| Create | Tworzy standardowe pole edycji Windows i kojarzy je z obiektem CEdit. |
| CanUndo | Ustala czy operacje mogą być odwołane. |
| GetLineCount | Zwraca ilość lini w kontrolce ze stylem multiline. |
| GetModify | Sprawdza czy zawartość kontrolki może być modyfikowana. |
| SetModify | Ustawia bądź usuwa flagę modyfikacji zawartości kontrolki. |
| GetRect | Zwraca rozmiar kontrolki. |
| GetSel | Zwraca pierwszą i ostatnią pozycję liter w zaznaczonym tekście. |
| GetHandle | Poniera uchwyt do pamięci przydzielonej dla kontrolki. |
| SetHandle | Ustawia pamięć wykorzystywaną przez kontrolkę. |
| SetMargins | Ustawia lewy i prawy margines dla kontrolki. |
| GetMargins | Pobiera lewy i prawy marines dla pola edycji. |
| SetLimitText | Ustala maksymalną ilość tekstu jaką kontrolka może zawierać. |
| GetLimitText | Pobiera maksymalną ilość tekstu jaką kontrolka może zawierać. |
| PosFromChar | Pobiera współrzędne górnego lewego rogu dla określonej litery. |
| CharFromPos | Pobiera linię i indeks litery, które znajdują się najbliżej zadanych współrzędnych. |
| GetLine | Pobiera linie tekstu z pola edycyjnego. |
| GetPasswordChar | Pobiera literę, która jest widoczna gdy wpisujemy hasła. |
| GetFirstVisibleLine | Określa najwyżej znajdującą się linię. |
| EmptyUndoBuffer | Usuwa flagę modyfikacji dla pola edycyjnego. |
| FmtLines | W kontrolkach wielo-liniowych ustawia bądź usuwa przenoszenie wyrazów. |
| LimitText | Ustala maksymalną długość wpisywanego przez użytkownika tekstu. |
| LineLength | Zwraca długość lini tekstu w polu edycyjnym. |
| LineScroll | Przewija tekst w kontrolce ze stylem multiline. |
| ReplaceSel | Zamienia zaznaczony w kontrolce tekst określonym tekstem. |
| SetPasswordChar | Ustawia lub usuwa znak, który jest widoczy gdy wpisujemy hasła. |
| SetRect | Ustawia rozmiar kontrolki i przerysowywuje ją. |
| SetRectNP | Ustawia rozmiar kontrolki bez przerysowywania jej. |
| SetSel | Zaznacza tekst w polu edycyjnym. |
| SetTabStops | Ustawia tabulatory w polu edycyjnym. |
| SetReadOnly | Blokuje możliwość edycji tekstu w kontrolce. |
| Undo | Odwołuje ostatnią operację. |
| Clear | Usuwa zaznaczony tekst. |
| Copy | Kopiuje zaznaczony tekst do schowka w formacie CF_TEXT. |
| Cut | Usuwa zaznaczony tekst i kopiuje go do schowka w formacie CF_TEXT. |
| Paste | Wkleja tekst ze schowka jeśli znajdował się w nim teskt w formacie CF_TEXT. |