img/mfc2.jpg

CEdit


Opis

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:
  • ON_EN_CHANGE
  • Komunikat wysyłany gdy użytkownik dokona zmian w tekście.
  • ON_EN_ERRSPACE
  • Za mało pamięci aby przydzielić odpowiednią jej ilość.
  • ON_EN_HSCROLL
  • Użytkownik kliknął na pasku przewijania pionowego.
  • ON_EN_KILLFOCUS
  • Kontrolka traci ognisko.
  • ON_EN_MAXTEXT
  • 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.
  • ON_EN_SETFOCUS
  • Kontrolka otrzymała ognisko.
  • ON_ES_VSCROLL
  • 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

    Metody Opis
    CEditKonstruktor obiektu CEdit.
    CreateTworzy standardowe pole edycji Windows i kojarzy je z obiektem CEdit.
    CanUndoUstala czy operacje mogą być odwołane.
    GetLineCountZwraca ilość lini w kontrolce ze stylem multiline.
    GetModifySprawdza czy zawartość kontrolki może być modyfikowana.
    SetModifyUstawia bądź usuwa flagę modyfikacji zawartości kontrolki.
    GetRectZwraca rozmiar kontrolki.
    GetSelZwraca pierwszą i ostatnią pozycję liter w zaznaczonym tekście.
    GetHandlePoniera uchwyt do pamięci przydzielonej dla kontrolki.
    SetHandleUstawia pamięć wykorzystywaną przez kontrolkę.
    SetMarginsUstawia lewy i prawy margines dla kontrolki.
    GetMarginsPobiera lewy i prawy marines dla pola edycji.
    SetLimitTextUstala maksymalną ilość tekstu jaką kontrolka może zawierać.
    GetLimitTextPobiera maksymalną ilość tekstu jaką kontrolka może zawierać.
    PosFromCharPobiera współrzędne górnego lewego rogu dla określonej litery.
    CharFromPosPobiera linię i indeks litery, które znajdują się najbliżej zadanych współrzędnych.
    GetLinePobiera linie tekstu z pola edycyjnego.
    GetPasswordCharPobiera literę, która jest widoczna gdy wpisujemy hasła.
    GetFirstVisibleLineOkreśla najwyżej znajdującą się linię.
    EmptyUndoBufferUsuwa flagę modyfikacji dla pola edycyjnego.
    FmtLinesW kontrolkach wielo-liniowych ustawia bądź usuwa przenoszenie wyrazów.
    LimitTextUstala maksymalną długość wpisywanego przez użytkownika tekstu.
    LineLengthZwraca długość lini tekstu w polu edycyjnym.
    LineScrollPrzewija tekst w kontrolce ze stylem multiline.
    ReplaceSelZamienia zaznaczony w kontrolce tekst określonym tekstem.
    SetPasswordCharUstawia lub usuwa znak, który jest widoczy gdy wpisujemy hasła.
    SetRectUstawia rozmiar kontrolki i przerysowywuje ją.
    SetRectNPUstawia rozmiar kontrolki bez przerysowywania jej.
    SetSelZaznacza tekst w polu edycyjnym.
    SetTabStopsUstawia tabulatory w polu edycyjnym.
    SetReadOnlyBlokuje możliwość edycji tekstu w kontrolce.
    UndoOdwołuje ostatnią operację.
    ClearUsuwa zaznaczony tekst.
    CopyKopiuje zaznaczony tekst do schowka w formacie CF_TEXT.
    CutUsuwa zaznaczony tekst i kopiuje go do schowka w formacie CF_TEXT.
    PasteWkleja tekst ze schowka jeśli znajdował się w nim teskt w formacie CF_TEXT.

    Zobacz także:

    CWnd, CButton, CComboBox, CListBox, CScrollBar, CStatic, CDialog

    Hierarchia

    img/hr_cedit.gif