Udostępnij za pośrednictwem


Klasa CEdit

Udostępnia funkcje kontrolki edycji systemu Windows.

Składnia

class CEdit : public CWnd

Elementy członkowskie

Konstruktory publiczne

Nazwa/nazwisko opis
CEdit::CEdit CEdit Tworzy obiekt sterujący.

Metody publiczne

Nazwa/nazwisko opis
CEdit::CanUndo Określa, czy można cofnąć operację edycji.
CEdit::CharFromPos Pobiera indeksy wierszy i znaków dla znaku znajdującego się najbliżej określonej pozycji.
CEdit::Clear Usuwa (czyści) bieżące zaznaczenie (jeśli istnieje) w kontrolce edycji.
CEdit::Copy Kopiuje bieżące zaznaczenie (jeśli istnieje) w kontrolce edycji do Schowka w formacie CF_TEXT.
CEdit::Create Tworzy kontrolkę edycji systemu Windows i dołącza ją do CEdit obiektu.
CEdit::Cut Usuwa (wycina) bieżące zaznaczenie (jeśli istnieje) w kontrolce edycji i kopiuje usunięty tekst do Schowka w formacie CF_TEXT.
CEdit::EmptyUndoBuffer Resetuje (czyści) flagę cofania kontrolki edycji.
CEdit::FmtLines Ustawia dołączanie miękkich znaków podziału wiersza w kontrolce edycji wielowierszowej lub wyłączonej.
CEdit::GetCueBanner Pobiera tekst wyświetlany jako wskazówka tekstowa lub porada w kontrolce edycji, gdy kontrolka jest pusta i nie ma fokusu.
CEdit::GetFirstVisibleLine Określa najbardziej widoczny wiersz w kontrolce edycji.
CEdit::GetHandle Pobiera dojście do pamięci, która jest obecnie przydzielona dla wielowierszowej kontrolki edycji.
CEdit::GetHighlight Pobiera indeksy znaków początkowych i końcowych w zakresie tekstu wyróżnionego w bieżącej kontrolce edycji.
CEdit::GetLimitText Pobiera maksymalną ilość tekstu, który CEdit może zawierać.
CEdit::GetLine Pobiera wiersz tekstu z kontrolki edycji.
CEdit::GetLineCount Pobiera liczbę wierszy w kontrolce edycji wielowierszowej.
CEdit::GetMargins Pobiera lewe i prawe marginesy dla tego CEditelementu .
CEdit::GetModify Określa, czy zawartość kontrolki edycji została zmodyfikowana.
CEdit::GetPasswordChar Pobiera znak hasła wyświetlany w kontrolce edycji, gdy użytkownik wprowadza tekst.
CEdit::GetRect Pobiera prostokąt formatowania kontrolki edycji.
CEdit::GetSel Pobiera pierwsze i ostatnie pozycje znaków bieżącego zaznaczenia w kontrolce edycji.
CEdit::HideBalloonTip Ukrywa dowolną wskazówkę dymka skojarzoną z bieżącą kontrolką edycji.
CEdit::LimitText Ogranicza długość tekstu, który użytkownik może wprowadzić w kontrolce edycji.
CEdit::LineFromChar Pobiera numer wiersza, który zawiera określony indeks znaków.
CEdit::LineIndex Pobiera indeks znaków wiersza w kontrolce edycji wielowierszowej.
CEdit::LineLength Pobiera długość wiersza w kontrolce edycji.
CEdit::LineScroll Przewija tekst kontrolki edycji wielowierszowej.
CEdit::P aste Wstawia dane ze Schowka do kontrolki edycji na bieżącym położeniu kursora. Dane są wstawiane tylko wtedy, gdy Schowek zawiera dane w formacie CF_TEXT.
CEdit::P osFromChar Pobiera współrzędne lewego górnego rogu określonego indeksu znaków.
CEdit::ReplaceSel Zamienia bieżące zaznaczenie w kontrolce edycji na określony tekst.
CEdit::SetCueBanner Ustawia tekst wyświetlany jako wskazówka tekstowa lub wskazówka w kontrolce edycji, gdy kontrolka jest pusta i nie ma fokusu.
CEdit::SetHandle Ustawia uchwyt na pamięć lokalną, która będzie używana przez kontrolkę edycji wielowierszowej.
CEdit::SetHighlight Wyróżnia zakres tekstu wyświetlany w bieżącej kontrolce edycji.
CEdit::SetLimitText Ustawia maksymalną ilość tekstu, który CEdit może zawierać.
CEdit::SetMargins Ustawia lewe i prawe marginesy dla tego CEditelementu .
CEdit::SetModify Ustawia lub czyści flagę modyfikacji kontrolki edycji.
CEdit::SetPasswordChar Ustawia lub usuwa znak hasła wyświetlany w kontrolce edycji, gdy użytkownik wprowadza tekst.
CEdit::SetReadOnly Ustawia stan tylko do odczytu kontrolki edycji.
CEdit::SetRect Ustawia prostokąt formatowania kontrolki edycji wielowierszowej i aktualizuje kontrolkę.
CEdit::SetRectNP Ustawia prostokąt formatowania kontrolki edycji wielowierszowej bez ponownego wyrysowania okna kontrolki.
CEdit::SetSel Wybiera zakres znaków w kontrolce edycji.
CEdit::SetTabStops Ustawia kartę zatrzymaną w kontrolce edycji wielowierszowej.
CEdit::ShowBalloonTip Wyświetla poradę dymka skojarzoną z bieżącą kontrolką edycji.
CEdit::Undo Odwraca ostatnią operację kontroli edycji.

Uwagi

Kontrolka edycji to prostokątne okno podrzędne, w którym użytkownik może wprowadzić tekst.

Kontrolkę edycji można utworzyć na podstawie szablonu okna dialogowego lub bezpośrednio w kodzie. W obu przypadkach najpierw wywołaj konstruktor CEdit , aby skonstruować CEdit obiekt, a następnie wywołaj funkcję Utwórz składową, aby utworzyć kontrolkę edycji systemu Windows i dołączyć ją do CEdit obiektu.

Konstrukcja może być procesem jednoetapowym w klasie pochodzącej z CEditklasy . Napisz konstruktor dla klasy pochodnej i wywołaj Create metodę z wewnątrz konstruktora.

CEdit dziedziczy znaczącą funkcjonalność z programu CWnd. Aby ustawić i pobrać tekst z CEdit obiektu, użyj CWnd funkcji składowych SetWindowText i GetWindowText, które ustawiają lub pobierają całą zawartość kontrolki edycji, nawet jeśli jest to kontrolka wielowierszowa. Wiersze tekstu w kontrolce wielowierszowej są oddzielone sekwencjami znaków "\r\n". Ponadto jeśli kontrolka edycji jest wielowierszowa, pobierz i ustaw część tekstu kontrolki, wywołując CEdit funkcje składowe GetLine, SetSel, GetSel i ReplaceSel.

Jeśli chcesz obsługiwać komunikaty powiadomień systemu Windows wysyłane przez kontrolkę edycji do jej elementu nadrzędnego (zazwyczaj klasy pochodzącej z CDialogklasy ), dodaj funkcję składową elementu członkowskiego mapy komunikatów i obsługi komunikatów do klasy nadrzędnej dla każdego komunikatu.

Każdy wpis mapy komunikatów ma następujący formularz:

ON_NOTIFICATION( id, memberFxn )

gdzie id określa identyfikator okna podrzędnego kontrolki edycji wysyłającej powiadomienie i memberFxn jest nazwą nadrzędnej funkcji składowej, która została zapisana w celu obsługi powiadomienia.

Prototyp funkcji elementu nadrzędnego jest następujący:

afx_msg void memberFxn ( );

Poniżej znajduje się lista potencjalnych wpisów mapy komunikatów i opis przypadków, w których zostaną one wysłane do elementu nadrzędnego:

  • ON_EN_CHANGE Użytkownik podjął akcję, która mogła zmienić tekst w kontrolce edycji. W przeciwieństwie do komunikatu powiadomienia EN_UPDATE ten komunikat powiadomienia jest wysyłany po zaktualizowaniu ekranu przez system Windows.

  • ON_EN_ERRSPACE Kontrolka edycji nie może przydzielić wystarczającej ilości pamięci, aby spełnić określone żądanie.

  • ON_EN_HSCROLL Użytkownik klika poziomy pasek przewijania kontrolki edycji. Okno nadrzędne jest powiadamiane przed zaktualizowanym ekranem.

  • ON_EN_KILLFOCUS Kontrolka edycji traci fokus wejściowy.

  • ON_EN_MAXTEXT Bieżąca wstawienie przekroczyło określoną liczbę znaków dla kontrolki edycji i zostało obcięte. Również wysyłane, gdy kontrolka edycji nie ma stylu ES_AUTOHSCROLL, a liczba znaków do wstawienia przekracza szerokość kontrolki edycji. Również wysyłane, gdy kontrolka edycji nie ma stylu ES_AUTOVSCROLL, a łączna liczba wierszy wynikających z wstawiania tekstu przekroczy wysokość kontrolki edycji.

  • ON_EN_SETFOCUS Wysłane, gdy kontrolka edycji odbiera fokus wejściowy.

  • ON_EN_UPDATE Kontrolka edycji ma wyświetlać zmieniony tekst. Wysłane po kontrolce sformatował tekst, ale przed jego ekranem tekst tak, aby można było zmienić rozmiar okna, w razie potrzeby.

  • ON_EN_VSCROLL Użytkownik klika pionowy pasek przewijania kontrolki edycji. Okno nadrzędne jest powiadamiane przed zaktualizowanym ekranem.

Jeśli utworzysz CEdit obiekt w oknie dialogowym, CEdit obiekt zostanie automatycznie zniszczony, gdy użytkownik zamknie okno dialogowe.

Jeśli utworzysz CEdit obiekt z zasobu okna dialogowego przy użyciu edytora okien dialogowych, CEdit obiekt zostanie automatycznie zniszczony, gdy użytkownik zamknie okno dialogowe.

Jeśli utworzysz CEdit obiekt w oknie, może być również konieczne jego zniszczenie. Jeśli utworzysz CEdit obiekt na stosie, zostanie on zniszczony automatycznie. Jeśli utworzysz CEdit obiekt na stercie przy użyciu new funkcji, musisz wywołać delete obiekt, aby go zniszczyć, gdy użytkownik zakończy kontrolkę edycji systemu Windows. Jeśli przydzielisz jakąkolwiek pamięć w CEdit obiekcie, przesłoń CEdit destruktor w celu usunięcia alokacji.

Aby zmodyfikować niektóre style w kontrolce edycji (na przykład ES_READONLY), należy wysłać określone komunikaty do kontrolki zamiast przy użyciu metody ModifyStyle. Zobacz Edytowanie stylów kontrolek w zestawie Windows SDK.

Aby uzyskać więcej informacji na temat CEditprogramu , zobacz Kontrolki.

Hierarchia dziedziczenia

Obiekt CObject

CCmdTarget

CWnd

CEdit

Wymagania

Nagłówek: afxwin.h

CEdit::CanUndo

Wywołaj tę funkcję, aby określić, czy można cofnąć ostatnią operację edycji.

BOOL CanUndo() const;

Wartość zwracana

Niezerowe, jeśli ostatnia operacja edycji może zostać cofnięta przez wywołanie funkcji składowej Undo ; 0, jeśli nie można jej cofnąć.

Uwagi

Aby uzyskać więcej informacji, zobacz EM_CANUNDO w zestawie Windows SDK.

Przykład

Zobacz przykład CEdit ::Undo.

CEdit::CEdit

CEdit Tworzy obiekt.

CEdit();

Uwagi

Użyj polecenia Utwórz , aby skonstruować kontrolkę edycji systemu Windows.

Przykład

// Declare a local CEdit object.
CEdit myEdit;

// Declare a dynamic CEdit object.
CEdit *pmyEdit = new CEdit;

CEdit::CharFromPos

Wywołaj tę funkcję, aby pobrać zera wiersz i indeksy znaków znaku najbliższego określonego punktu w tej CEdit kontrolce

int CharFromPos(CPoint pt) const;

Parametry

Pt
Współrzędne punktu w obszarze klienta tego CEdit obiektu.

Wartość zwracana

Indeks znaków w programie WORD o niskiej kolejności oraz indeks wiersza w programie WORD o wysokiej kolejności.

Uwagi

Uwaga

Ta funkcja składowa jest dostępna od systemów Windows 95 i Windows NT 4.0.

Aby uzyskać więcej informacji, zobacz EM_CHARFROMPOS w zestawie Windows SDK.

Przykład

// CMyEdit inherits from CEdit
void CMyEdit::OnLButtonDown(UINT nFlags, CPoint point)
{
   int n = CharFromPos(point);
   int nLineIndex = HIWORD(n);
   int nCharIndex = LOWORD(n);
   TRACE(_T("nLineIndex = %d, nCharIndex = %d\r\n"), nLineIndex, nCharIndex);

   CEdit::OnLButtonDown(nFlags, point);
}

CEdit::Clear

Wywołaj tę funkcję, aby usunąć (wyczyść) bieżące zaznaczenie (jeśli istnieje) w kontrolce edycji.

void Clear();

Uwagi

Usunięcie wykonywane przez Clear program można cofnąć, wywołując funkcję składową Cofnij .

Aby usunąć bieżące zaznaczenie i umieścić usuniętą zawartość w Schowku, wywołaj funkcję wycinania elementu członkowskiego.

Aby uzyskać więcej informacji, zobacz WM_CLEAR w zestawie Windows SDK.

Przykład

// Delete all of the text.
m_myEdit.SetSel(0, -1);
m_myEdit.Clear();

CEdit::Copy

Wywołaj tę funkcję, aby coy bieżące zaznaczenie (jeśli istnieje) w kontrolce edycji do Schowka w formacie CF_TEXT.

void Copy();

Uwagi

Aby uzyskać więcej informacji, zobacz WM_COPY w zestawie Windows SDK.

Przykład

// Copy all of the text to the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Copy();

CEdit::Create

Tworzy kontrolkę edycji systemu Windows i dołącza ją do CEdit obiektu.

virtual BOOL Create(
    DWORD dwStyle,
    const RECT& rect,
    CWnd* pParentWnd,
    UINT nID);

Parametry

dwStyle
Określa styl kontrolki edycji. Zastosuj dowolną kombinację stylów edycji do kontrolki.

Rect
Określa rozmiar i położenie kontrolki edycji. Może być obiektem lub RECT strukturąCRect.

pParentWnd
Określa okno nadrzędne kontrolki edycji (zazwyczaj CDialog). Nie może mieć wartości NULL.

Nid
Określa identyfikator kontrolki edycji.

Wartość zwracana

Inicjalizacja niezerowa, jeśli inicjowanie zakończyło się pomyślnie; w przeciwnym razie 0.

Uwagi

Obiekt jest konstruowany CEdit w dwóch krokach. Najpierw wywołaj konstruktor, a następnie wywołaj Createmetodę CEdit , która tworzy kontrolkę edycji systemu Windows i dołącza ją do CEdit obiektu.

Podczas Create wykonywania system Windows wysyła komunikaty WM_NCCREATE, WM_NCCALCSIZE, WM_CREATE i WM_GETMINMAXINFO do kontrolki edycji.

Te komunikaty są domyślnie obsługiwane przez funkcje składowe OnNcCreate, OnNcCalcSize, OnCreate i OnGetMinMaxInfo w klasie bazowej CWnd . Aby rozszerzyć domyślną obsługę komunikatów, utwórz klasę z CEditklasy , dodaj mapę komunikatów do nowej klasy i przesłoń powyższe funkcje składowe programu obsługi komunikatów. Zastąpij OnCreatena przykład , aby wykonać wymaganą inicjację dla nowej klasy.

Zastosuj następujące style okna do kontrolki edycji.

  • zawsze WS_CHILD

  • WS_VISIBLE zwykle

  • WS_DISABLED rzadko

  • kontrolki WS_GROUP do grupy

  • WS_TABSTOP Aby uwzględnić kontrolkę edycji w kolejności tabulacji

Przykład

// dynamically create an edit control
CEdit *pEdit = new CEdit;
pEdit->Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,
              CRect(10, 10, 100, 100), this, 1);

CEdit::Cut

Wywołaj tę funkcję, aby usunąć (wytnij) bieżące zaznaczenie (jeśli istnieje) w kontrolce edycji i skopiować usunięty tekst do Schowka w formacie CF_TEXT.

void Cut();

Uwagi

Usunięcie wykonywane przez Cut program można cofnąć, wywołując funkcję składową Cofnij .

Aby usunąć bieżące zaznaczenie bez umieszczania usuniętego tekstu w Schowku, wywołaj funkcję Wyczyść składową.

Aby uzyskać więcej informacji, zobacz WM_CUT w zestawie Windows SDK.

Przykład

// Delete all of the text and copy it to the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Cut();

CEdit::EmptyUndoBuffer

Wywołaj tę funkcję, aby zresetować (wyczyść) flagę cofania kontrolki edycji.

void EmptyUndoBuffer();

Uwagi

Kontrolka edycji nie będzie teraz mogła cofnąć ostatniej operacji. Flaga cofania jest ustawiana za każdym razem, gdy można cofnąć operację w kontrolce edycji.

Flaga cofania jest automatycznie czyszczone za każdym razem, gdy wywoływane są funkcje składowe SetWindowText lub SetHandleCWnd .

Aby uzyskać więcej informacji, zobacz EM_EMPTYUNDOBUFFER w zestawie Windows SDK.

Przykład

// Clear the undo buffer.
if (m_myEdit.CanUndo())
{
   m_myEdit.EmptyUndoBuffer();
   ASSERT(!m_myEdit.CanUndo());
}

CEdit::FmtLines

Wywołaj tę funkcję, aby ustawić włączenie miękkich znaków podziału wiersza w kontrolce edycji wielowierszowej lub wyłączonej.

BOOL FmtLines(BOOL bAddEOL);

Parametry

bAddEOL
Określa, czy znaki podziału linii miękkiej mają być wstawione. Wartość TRUE wstawia znaki; wartość FALSE je usuwa.

Wartość zwracana

Bezzerowe, jeśli wystąpi jakiekolwiek formatowanie; w przeciwnym razie 0.

Uwagi

Podział linii miękkiej składa się z dwóch powrotów karetki i kanału liniowego wstawionego na końcu linii, która jest uszkodzona z powodu zawijania wyrazów. Podział linii twardej składa się z jednego powrotu karetki i kanału informacyjnego. Linie kończące się twardym podziałem linii nie mają wpływu na FmtLineswartość .

System Windows odpowie tylko wtedy, gdy CEdit obiekt jest kontrolką edycji wielowierszowej.

FmtLines Wpływa tylko na bufor zwracany przez getHandle i tekst zwrócony przez WM_GETTEXT. Nie ma to wpływu na wyświetlanie tekstu w kontrolce edycji.

Aby uzyskać więcej informacji, zobacz EM_FMTLINES w zestawie Windows SDK.

Przykład

CString strText;

// Add soft line-break breaks.
m_myEdit.FmtLines(TRUE);

// Dump the text of the edit control.
m_myEdit.GetWindowText(strText);
AFXDUMP(strText);

// Remove soft line-break breaks.
m_myEdit.FmtLines(FALSE);

CEdit::GetCueBanner

Pobiera tekst wyświetlany jako wskazówka tekstowa lub porada w kontrolce edycji, gdy kontrolka jest pusta.

BOOL GetCueBanner(
    LPWSTR lpszText,
    int cchText) const;

CString GetCueBanner() const;

Parametry

lpszText
[out] Wskaźnik do ciągu zawierającego tekst wskazówek.

cchText
[in] Liczba znaków, które można odebrać. Ta liczba zawiera znak null zakończenia.

Wartość zwracana

W przypadku pierwszego przeciążenia wartość TRUE, jeśli metoda zakończyła się pomyślnie; w przeciwnym razie FAŁSZ.

W przypadku drugiego przeciążenia ciąg CString zawierający tekst wskazówek, jeśli metoda zakończyła się pomyślnie; w przeciwnym razie pusty ciąg ("").

Uwagi

Ta metoda wysyła komunikat EM_GETCUEBANNER opisany w zestawie Windows SDK. Aby uzyskać więcej informacji, zobacz makro Edit_GetCueBannerText .

CEdit::GetFirstVisibleLine

Wywołaj tę funkcję, aby określić najbardziej widoczny wiersz w kontrolce edycji.

int GetFirstVisibleLine() const;

Wartość zwracana

Indeks oparty na zera najbardziej widocznej linii. W przypadku kontrolek edycji jednowierszowej zwracana wartość to 0.

Uwagi

Aby uzyskać więcej informacji, zobacz EM_GETFIRSTVISIBLELINE w zestawie Windows SDK.

Przykład

int nFirstVisible = m_myEdit.GetFirstVisibleLine();

// Scroll the edit control so that the first visible line
// is the first line of text.
if (nFirstVisible > 0)
{
   m_myEdit.LineScroll(-nFirstVisible, 0);
}

CEdit::GetHandle

Wywołaj tę funkcję, aby pobrać uchwyt do pamięci przydzielonej obecnie dla kontrolki edycji wielowierszowej.

HLOCAL GetHandle() const;

Wartość zwracana

Uchwyt pamięci lokalnej, który identyfikuje bufor przechowujący zawartość kontrolki edycji. Jeśli wystąpi błąd, taki jak wysłanie komunikatu do kontrolki edycji jednowierszowej, zwracana wartość to 0.

Uwagi

Uchwyt jest uchwytem pamięci lokalnej i może być używany przez dowolne funkcje pamięci lokalnej systemu Windows, które przyjmują uchwyt pamięci lokalnej jako parametr.

GetHandle jest przetwarzany tylko przez kontrolki edycji wielu wierszy.

Wywołaj GetHandle kontrolkę edycji wielowierszowej w oknie dialogowym tylko wtedy, gdy okno dialogowe zostało utworzone z ustawionym flagą stylu DS_LOCALEDIT. Jeśli styl DS_LOCALEDIT nie jest ustawiony, nadal otrzymasz niezerową wartość zwracaną, ale nie będzie można użyć zwróconej wartości.

Uwaga

GetHandle nie będzie działać z systemem Windows 95/98. Jeśli wywołasz wywołanie GetHandle w systemie Windows 95/98, zwróci wartość NULL. GetHandle będzie działać zgodnie z dokumentacją w systemie Windows NT w wersji 3.51 lub nowszej.

Aby uzyskać więcej informacji, zobacz EM_GETHANDLE w zestawie Windows SDK.

Przykład

HLOCAL h = m_myEdit.GetHandle();
LPCTSTR lpszText = (LPCTSTR)::LocalLock(h);

// Dump the text of the edit control.
AFXDUMP(lpszText);

::LocalUnlock(h);

CEdit::GetHighlight

Pobiera indeksy pierwszych i ostatnich znaków w zakresie tekstu wyróżnionego w bieżącej kontrolce edycji.

BOOL GetHighlight(
    int* pichStart,
    int* pichEnd) const;

Parametry

pichStart
[out] Indeks oparty na zera pierwszego znaku w zakresie wyróżnionego tekstu.

pichEnd
[out] Indeks na podstawie zera ostatniego znaku w zakresie wyróżnionego tekstu.

Wartość zwracana

Wartość TRUE, jeśli ta metoda zakończyła się pomyślnie; w przeciwnym razie, FAŁSZ.

Uwagi

Ta metoda wysyła komunikat EM_GETHILITE opisany w zestawie Windows SDK. Oba SetHighlight te elementy i GetHighlight są obecnie włączone tylko dla kompilacji UNICODE.

CEdit::GetLimitText

Wywołaj tę funkcję składową, aby uzyskać limit tekstu dla tego CEdit obiektu.

UINT GetLimitText() const;

Wartość zwracana

Bieżący limit tekstu w TCHARs dla tego CEdit obiektu.

Uwagi

Limit tekstu jest maksymalną ilością tekstu w TCHARs, którą może zaakceptować kontrolka edycji.

Uwaga

Ta funkcja składowa jest dostępna od systemów Windows 95 i Windows NT 4.0.

Aby uzyskać więcej informacji, zobacz EM_GETLIMITTEXT w zestawie Windows SDK.

Przykład

CString strText(_T("I'm an edit control!"));
UINT nLength = strText.GetLength() * sizeof(TCHAR);

// Want the text limit to be at least the size of the new string.
if (m_myEdit.GetLimitText() < nLength)
   m_myEdit.SetLimitText(nLength);

m_myEdit.SetWindowText(strText);

CEdit::GetLine

Wywołaj tę funkcję, aby pobrać wiersz tekstu z kontrolki edycji i umieszcza ją w lpszBuffer.

int GetLine(
    int nIndex,
    LPTSTR lpszBuffer) const;

int GetLine(
    int nIndex,
    LPTSTR lpszBuffer,
    int nMaxLength) const;

Parametry

nIndex
Określa numer wiersza do pobrania z wielowierszowej kontrolki edycji. Liczby wierszy są oparte na zerach; wartość 0 określa pierwszy wiersz. Ten parametr jest ignorowany przez kontrolkę edycji pojedynczego wiersza.

lpszBuffer
Wskazuje bufor, który odbiera kopię wiersza. Pierwsze słowo buforu musi określać maksymalną liczbę TCHARs, które można skopiować do buforu.

nMaxLength
Określa maksymalną liczbę znaków TCHAR, które można skopiować do buforu. GetLine umieszcza tę wartość w pierwszym słowie lpszBuffer przed wywołaniem systemu Windows.

Wartość zwracana

Liczba znaków, które faktycznie skopiowano. Zwracana wartość to 0, jeśli numer wiersza określony przez nIndex jest większy niż liczba wierszy w kontrolce edycji.

Uwagi

Skopiowany wiersz nie zawiera znaku zakończenia wartości null.

Aby uzyskać więcej informacji, zobacz EM_GETLINE w zestawie Windows SDK.

Przykład

Zobacz przykład dla CEdit::GetLineCount.

CEdit::GetLineCount

Wywołaj tę funkcję, aby pobrać liczbę wierszy w kontrolce edycji wielowierszowej.

int GetLineCount() const;

Wartość zwracana

Liczba całkowita zawierająca liczbę wierszy w kontrolce edycji wielu wierszy. Jeśli żaden tekst nie został wprowadzony do kontrolki edycji, zwracana wartość to 1.

Uwagi

GetLineCount jest przetwarzany tylko przez kontrolki edycji wielu wierszy.

Aby uzyskać więcej informacji, zobacz EM_GETLINECOUNT w zestawie Windows SDK.

Przykład

int i, nLineCount = m_myEdit.GetLineCount();
CString strText, strLine;
// Dump every line of text of the edit control.
for (i = 0; i < nLineCount; i++)
{
   // length of line i:
   int len = m_myEdit.LineLength(m_myEdit.LineIndex(i));
   m_myEdit.GetLine(i, strText.GetBuffer(len), len);
   strText.ReleaseBuffer(len);
   strLine.Format(_T("line %d: '%s'\n"), i, strText);
   AFXDUMP(strLine);
}

CEdit::GetMargins

Wywołaj tę funkcję składową, aby pobrać lewe i prawe marginesy tej kontrolki edycji.

DWORD GetMargins() const;

Wartość zwracana

Szerokość lewego marginesu w programie WORD o niskiej kolejności oraz szerokość prawego marginesu w programie WORD o wysokiej kolejności.

Uwagi

Marginesy są mierzone w pikselach.

Uwaga

Ta funkcja składowa jest dostępna od systemów Windows 95 i Windows NT 4.0.

Aby uzyskać więcej informacji, zobacz EM_GETMARGINS w zestawie Windows SDK.

Przykład

Zobacz przykład CEditView ::GetEditCtrl.

CEdit::GetModify

Wywołaj tę funkcję, aby określić, czy zawartość kontrolki edycji została zmodyfikowana.

BOOL GetModify() const;

Wartość zwracana

Niezero, jeśli zawartość kontrolki edycji została zmodyfikowana; 0, jeśli pozostały niezmienione.

Uwagi

System Windows obsługuje flagę wewnętrzną wskazującą, czy zawartość kontrolki edycji została zmieniona. Ta flaga jest czyszczone po pierwszym utworzeniu kontrolki edycji i może być również wyczyszczone przez wywołanie funkcji składowej SetModify .

Aby uzyskać więcej informacji, zobacz EM_GETMODIFY w zestawie Windows SDK.

Przykład

// Reset the modified state only if my edit has been modified.
if (m_myEdit.GetModify())
   m_myEdit.SetModify(FALSE);

CEdit::GetPasswordChar

Wywołaj tę funkcję, aby pobrać znak hasła wyświetlany w kontrolce edycji, gdy użytkownik wprowadza tekst.

TCHAR GetPasswordChar() const;

Wartość zwracana

Określa znak, który ma być wyświetlany zamiast znaku wpisanego przez użytkownika. Zwracana wartość ma wartość NULL, jeśli znak hasła nie istnieje.

Uwagi

Jeśli tworzysz kontrolkę edycji przy użyciu stylu ES_PASSWORD, biblioteka DLL obsługująca kontrolkę określa domyślny znak hasła. Manifest lub metoda InitCommonControlsEx określa, która biblioteka DLL obsługuje kontrolkę edycji. Jeśli user32.dll obsługuje kontrolkę edycji, domyślnym znakiem hasła jest ASTERISK ('*', U+002A). Jeśli comctl32.dll w wersji 6 obsługuje kontrolkę edycji, domyślnym znakiem jest BLACK CIRCLE ('●', U+25CF). Aby uzyskać więcej informacji o tym, która biblioteka DLL i wersja obsługuje typowe kontrolki, zobacz Powłoka i typowe wersje kontrolek.

Ta metoda wysyła komunikat EM_GETPASSWORDCHAR opisany w zestawie Windows SDK.

Przykład

// Turn on the password mode.
m_myEdit.SetPasswordChar('*');
ASSERT(m_myEdit.GetStyle() & ES_PASSWORD);
ASSERT(m_myEdit.GetPasswordChar() == '*');

CEdit::GetRect

Wywołaj tę funkcję, aby uzyskać prostokąt formatowania kontrolki edycji.

void GetRect(LPRECT lpRect) const;

Parametry

lpRect
RECT Wskazuje strukturę, która odbiera prostokąt formatowania.

Uwagi

Prostokąt formatowania to prostokąt ograniczający tekst, który jest niezależny od rozmiaru okna kontrolki edycji.

Prostokąt formatowania kontrolki edycji wielowierszowej można modyfikować za pomocą funkcji składowych SetRect i SetRectNP .

Aby uzyskać więcej informacji, zobacz EM_GETRECT w zestawie Windows SDK.

Przykład

Zobacz przykład CEdit ::LimitText.

CEdit::GetSel

Wywołaj tę funkcję, aby uzyskać pozycje znaków początkowych i końcowych bieżącego zaznaczenia (jeśli istnieje) w kontrolce edycji przy użyciu wartości zwracanej lub parametrów.

DWORD GetSel() const;

void GetSel(
    int& nStartChar,
    int& nEndChar) const;

Parametry

nStartChar
Odwołanie do liczby całkowitej, która otrzyma pozycję pierwszego znaku w bieżącym zaznaczeniu.

nEndChar
Odwołanie do liczby całkowitej, która otrzyma pozycję pierwszego nieznaczonego znaku obok końca bieżącego zaznaczenia.

Wartość zwracana

Wersja zwracająca wartość DWORD zwraca wartość zawierającą pozycję początkową w wyrazie o niskiej kolejności i pozycję pierwszego nieznaczonego znaku po zakończeniu zaznaczenia w wyrazie o wysokiej kolejności.

Uwagi

Aby uzyskać więcej informacji, zobacz EM_GETSEL w zestawie Windows SDK.

Przykład

// Set the selection to be all characters after the current selection.
DWORD dwSel = m_myEdit.GetSel();
m_myEdit.SetSel(HIWORD(dwSel), -1);

CEdit::HideBalloonTip

Ukrywa dowolną wskazówkę dymka skojarzoną z bieżącą kontrolką edycji.

BOOL HideBalloonTip();

Wartość zwracana

Wartość TRUE, jeśli ta metoda zakończyła się pomyślnie; w przeciwnym razie, FAŁSZ.

Uwagi

Ta funkcja wysyła komunikat EM_HIDEBALLOONTIP opisany w zestawie Windows SDK.

CEdit::LimitText

Wywołaj tę funkcję, aby ograniczyć długość tekstu, który użytkownik może wprowadzić w kontrolce edycji.

void LimitText(int nChars = 0);

Parametry

nChars
Określa długość tekstu (w TCHARs), który użytkownik może wprowadzić. Jeśli ten parametr ma wartość 0, długość tekstu jest ustawiona na UINT_MAX bajtów. To jest zachowanie domyślne.

Uwagi

Zmiana limitu tekstu ogranicza tylko tekst, który użytkownik może wprowadzić. Nie ma wpływu na żaden tekst już w kontrolce edycji ani nie ma wpływu na długość tekstu skopiowanego do kontrolki edycji przez funkcję składową SetWindowText w elemencie CWnd. Jeśli aplikacja używa SetWindowText funkcji, aby umieścić więcej tekstu w kontrolce edycji niż określono w wywołaniu metody LimitText, użytkownik może usunąć dowolny tekst w kontrolce edycji. Jednak limit tekstu uniemożliwi użytkownikowi zastąpienie istniejącego tekstu nowym tekstem, chyba że usunięcie bieżącego zaznaczenia spowoduje, że tekst spadnie poniżej limitu tekstu.

Uwaga

W systemach Win32 (Windows NT i Windows 95/98) funkcja SetLimitText zastępuje tę funkcję.

Aby uzyskać więcej informacji, zobacz EM_LIMITTEXT w zestawie Windows SDK.

Przykład

// Limit the number of characters to be the maximum number visible.

// Get the text metrics for the edit; needed for the
// average character width.
TEXTMETRIC tm;
CDC *pDC = m_myEdit.GetDC();
pDC->GetTextMetrics(&tm);
m_myEdit.ReleaseDC(pDC);

CRect r;
m_myEdit.GetRect(&r);
m_myEdit.LimitText(r.Width() / tm.tmAveCharWidth);

CEdit::LineFromChar

Wywołaj tę funkcję, aby pobrać numer wiersza wiersza, który zawiera określony indeks znaków.

int LineFromChar(int nIndex = -1) const;

Parametry

nIndex
Zawiera wartość indeksu zerowego dla żądanego znaku w tekście kontrolki edycji lub zawiera wartość -1. Jeśli nIndex ma wartość -1, określa bieżący wiersz, czyli wiersz zawierający daszek.

Wartość zwracana

Numer wiersza zerowego wiersza zawierającego indeks znaków określony przez nIndex. Jeśli nIndex to -1, zwracana jest liczba wierszy, która zawiera pierwszy znak zaznaczenia. Jeśli nie ma zaznaczenia, zwracany jest bieżący numer wiersza.

Uwagi

Indeks znaków to liczba znaków od początku kontrolki edycji.

Ta funkcja składowa jest używana tylko przez kontrolki edycji wielu wierszy.

Aby uzyskać więcej informacji, zobacz EM_LINEFROMCHAR w zestawie Windows SDK.

Przykład

// The index of the char to get information on.
int nIndex = 4;
CString strText;

m_myEdit.GetWindowText(strText);
strText = strText.Mid(nIndex, 1);

// Get the text extent of the character.
CDC *pDC = m_myEdit.GetDC();
CSize sz = pDC->GetTextExtent(strText);
m_myEdit.ReleaseDC(pDC);

CPoint pt = m_myEdit.PosFromChar(nIndex);

// Dump the index, character, line number, and character bounds.
TRACE(_T("nIndex = %d, character = %c, line = %d, bounds = ")
      _T("{%d, %d, %d, %d}\r\n"),
      nIndex, strText[0], m_myEdit.LineFromChar(nIndex),
      pt.x /* left */, pt.y /* top */,
      pt.x + sz.cx /* right */, pt.y + sz.cy /* bottom */);

CEdit::LineIndex

Wywołaj tę funkcję, aby pobrać indeks znaków wiersza w kontrolce edycji wielu wierszy.

int LineIndex(int nLine = -1) const;

Parametry

nLine
Zawiera wartość indeksu dla żądanego wiersza w tekście kontrolki edycji lub zawiera -1. Jeśli nLine ma wartość -1, określa bieżący wiersz, czyli wiersz zawierający daszek.

Wartość zwracana

Indeks znaków wiersza określony w nLine lub -1, jeśli określony numer wiersza jest większy niż liczba wierszy w kontrolce edycji.

Uwagi

Indeks znaków to liczba znaków od początku kontrolki edycji do określonego wiersza.

Ta funkcja składowa jest przetwarzana tylko przez kontrolki edycji wielu wierszy.

Aby uzyskać więcej informacji, zobacz EM_LINEINDEX w zestawie Windows SDK.

Przykład

// The string for replacing.
CString strString(_T("Hi, we're the replacements."));
int nBegin, nEnd;

// Replace the second line, if it exists, of the edit control
// with the text strString.
if ((nBegin = m_myEdit.LineIndex(1)) != -1)
{
   nEnd = nBegin + m_myEdit.LineLength(nBegin);
   m_myEdit.SetSel(nBegin, nEnd);
   m_myEdit.ReplaceSel(strString);
}

CEdit::LineLength

Pobiera długość wiersza w kontrolce edycji.

int LineLength(int nLine = -1) const;

Parametry

nLine
Indeks zerowy znaku w wierszu, którego długość ma zostać pobrana. Wartość domyślna to -1.

Wartość zwracana

W przypadku kontrolek edycji jednowierszowej wartość zwracana jest długością w TCHARs tekstu w kontrolce edycji.

W przypadku kontrolek edycji wielowierszowej wartość zwracana jest długością w TCHARs wiersza określonego przez parametr nLine . W przypadku tekstu ANSI długość to liczba bajtów w wierszu; w przypadku tekstu Unicode długość to liczba znaków w wierszu. Długość nie zawiera znaku powrotu karetki na końcu wiersza.

Jeśli parametr nLine jest większy niż liczba znaków w kontrolce, zwracana wartość wynosi zero.

Jeśli parametr nLine ma wartość -1, zwracana wartość to liczba niezaznaczone znaki w wierszach zawierających zaznaczone znaki. Jeśli na przykład zaznaczenie wykracza od czwartego znaku jednego wiersza przez ósmy znak od końca następnego wiersza, zwracana wartość to 10. Oznacza to, że trzy znaki w pierwszym wierszu i siedem w następnym.

Aby uzyskać więcej informacji na temat typu TCHAR, zobacz wiersz TCHAR w tabeli w obszarze Typy danych systemu Windows.

Uwagi

Ta metoda jest obsługiwana przez komunikat EM_LINELENGTH opisany w zestawie Windows SDK.

Przykład

Zobacz przykład CEdit::LineIndex.

CEdit::LineScroll

Wywołaj tę funkcję, aby przewinąć tekst kontrolki edycji wielowierszowej.

void LineScroll(
    int nLines,
    int nChars = 0);

Parametry

nLines
Określa liczbę wierszy do przewijania w pionie.

nChars
Określa liczbę pozycji znaków do przewijania w poziomie. Ta wartość jest ignorowana, jeśli kontrolka edycji ma styl ES_RIGHT lub ES_CENTER.

Uwagi

Ta funkcja składowa jest przetwarzana tylko przez kontrolki edycji wielu wierszy.

Kontrolka edycji nie przewija się w pionie obok ostatniego wiersza tekstu w kontrolce edycji. Jeśli bieżący wiersz plus liczba wierszy określonych przez nLines przekracza całkowitą liczbę wierszy w kontrolce edycji, wartość jest dostosowywana tak, aby ostatni wiersz kontrolki edycji był przewijany w górnej części okna kontrolki edycji.

LineScroll można użyć do przewijania w poziomie obok ostatniego znaku dowolnego wiersza.

Aby uzyskać więcej informacji, zobacz EM_LINESCROLL w zestawie Windows SDK.

Przykład

Zobacz przykład CEdit::GetFirstVisibleLine.

CEdit::P aste

Wywołaj tę funkcję, aby wstawić dane ze Schowka do CEdit punktu wstawiania.

void Paste();

Uwagi

Dane są wstawiane tylko wtedy, gdy Schowek zawiera dane w formacie CF_TEXT.

Aby uzyskać więcej informacji, zobacz WM_PASTE w zestawie Windows SDK.

Przykład

// Replace all of the text with the text in the clipboard.
m_myEdit.SetSel(0, -1);
m_myEdit.Paste();

CEdit::P osFromChar

Wywołaj tę funkcję, aby uzyskać pozycję (lewy górny róg) danego znaku w tym CEdit obiekcie.

CPoint PosFromChar(UINT nChar) const;

Parametry

nChar
Indeks zerowy określonego znaku.

Wartość zwracana

Współrzędne lewego górnego rogu znaku określonego przez nChar.

Uwagi

Znak jest określony przez nadanie wartości indeksu opartego na zera. Jeśli wartość nChar jest większa niż indeks ostatniego znaku w tym CEdit obiekcie, wartość zwracana określa współrzędne pozycji znaku tuż obok ostatniego znaku w tym CEdit obiekcie.

Uwaga

Ta funkcja składowa jest dostępna od systemów Windows 95 i Windows NT 4.0.

Aby uzyskać więcej informacji, zobacz EM_POSFROMCHAR w zestawie Windows SDK.

Przykład

Zobacz przykład CEdit ::LineFromChar.

CEdit::ReplaceSel

Wywołaj tę funkcję, aby zastąpić bieżące zaznaczenie w kontrolce edycji tekstem określonym przez lpszNewText.

void ReplaceSel(LPCTSTR lpszNewText, BOOL bCanUndo = FALSE);

Parametry

lpszNewText
Wskazuje ciąg o wartości null zawierający tekst zastępczy.

bCanUndo
Aby określić, że tę funkcję można cofnąć, ustaw wartość tego parametru na TRUE . Wartość domyślna to FALSE.

Uwagi

Zastępuje tylko część tekstu w kontrolce edycji. Jeśli chcesz zamienić cały tekst, użyj funkcji składowej CWnd::SetWindowText .

Jeśli nie ma bieżącego zaznaczenia, tekst zastępczy zostanie wstawiony w bieżącej lokalizacji kursora.

Aby uzyskać więcej informacji, zobacz EM_REPLACESEL w zestawie Windows SDK.

Przykład

Zobacz przykład CEdit::LineIndex.

CEdit::SetCueBanner

Ustawia tekst wyświetlany jako wskazówka tekstowa lub porada w kontrolce edycji, gdy kontrolka jest pusta.

BOOL SetCueBanner(LPCWSTR lpszText);

BOOL SetCueBanner(
    LPCWSTR lpszText,
    BOOL fDrawWhenFocused = FALSE);

Parametry

lpszText
[in] Wskaźnik do ciągu zawierającego wskazówkę do wyświetlenia w kontrolce edycji.

fDrawWhenFocused
[in] Jeśli fałsz, baner cue nie jest rysowany, gdy użytkownik kliknie w kontrolce edycji i daje kontrolę fokusu.

Jeśli wartość TRUE, baner sygnału jest rysowany nawet wtedy, gdy kontrolka ma fokus. Baner cue zniknie, gdy użytkownik zacznie wpisywać kontrolkę.

Wartość domyślna to FALSE.

Wartość zwracana

Wartość TRUE, jeśli metoda zakończyła się pomyślnie; w przeciwnym razie FAŁSZ.

Uwagi

Ta metoda wysyła komunikat EM_SETCUEBANNER opisany w zestawie Windows SDK. Aby uzyskać więcej informacji, zobacz makro Edit_SetCueBannerTextFocused .

Przykład

W poniższym przykładzie przedstawiono metodę CEdit::SetCueBanner .

m_cedit.SetCueBanner(_T("First, enter text here..."), TRUE);

CEdit::SetHandle

Wywołaj tę funkcję, aby ustawić uchwyt na pamięć lokalną, która będzie używana przez kontrolkę edycji wielowierszowej.

void SetHandle(HLOCAL hBuffer);

Parametry

hBuffer
Zawiera uchwyt do pamięci lokalnej. Ten uchwyt musi zostać utworzony przez poprzednie wywołanie funkcji LocalAlloc systemu Windows przy użyciu flagi LMEM_MOVEABLE. Zakłada się, że pamięć zawiera ciąg zakończony wartością null. Jeśli tak nie jest, pierwszy bajt przydzielonej pamięci powinien być ustawiony na 0.

Uwagi

Kontrolka edycji będzie następnie używać tego buforu do przechowywania aktualnie wyświetlanego tekstu zamiast przydzielania własnego buforu.

Ta funkcja składowa jest przetwarzana tylko przez kontrolki edycji wielu wierszy.

Przed ustawieniem przez aplikację nowego uchwytu pamięci należy użyć funkcji składowej GetHandle , aby uzyskać dojście do bieżącego buforu pamięci i zwolnić tę pamięć przy użyciu LocalFree funkcji systemu Windows.

SetHandle czyści bufor cofania ( funkcja składowa CanUndo następnie zwraca wartość 0) i flagę modyfikacji wewnętrznej ( funkcja elementu członkowskiego GetModify zwraca następnie wartość 0). Okno kontrolki edycji jest ponownie rysowane.

Tej funkcji składowej można użyć w kontrolce edycji wielowierszowej w oknie dialogowym tylko wtedy, gdy utworzono okno dialogowe z ustawionym flagą stylu DS_LOCALEDIT.

Uwaga

GetHandle nie będzie działać z systemem Windows 95/98. Jeśli wywołasz wywołanie GetHandle w systemie Windows 95/98, zwróci wartość NULL. GetHandle będzie działać zgodnie z dokumentacją w systemie Windows NT w wersji 3.51 lub nowszej.

Aby uzyskać więcej informacji, zobacz EM_SETHANDLE, LocalAlloc i LocalFree w zestawie Windows SDK.

Przykład

// The string to set in the edit control.
CString strString(_T("George Frideric"));

// Initialize the new local handle.
size_t cbSize = (strString.GetLength() + 1) * sizeof(TCHAR);
HLOCAL h = ::LocalAlloc(LHND, cbSize);
LPTSTR lpszText = (LPTSTR)::LocalLock(h);
_tcsncpy_s(lpszText, cbSize / sizeof(TCHAR), strString, _TRUNCATE);
::LocalUnlock(h);

// Free the current text handle of the edit control.
::LocalFree(m_myEdit.GetHandle());

// Set the new text handle.
m_myEdit.SetHandle(h);

CEdit::SetHighlight

Wyróżnia zakres tekstu wyświetlany w bieżącej kontrolce edycji.

void SetHighlight(
    int ichStart,
    int ichEnd);

Parametry

ichStart
[in] Zerowy indeks pierwszego znaku w zakresie tekstu do wyróżnienia.

ichEnd
[in] Zerowy indeks ostatniego znaku w zakresie tekstu do wyróżnienia.

Uwagi

Ta metoda wysyła komunikat EM_SETHILITE opisany w zestawie Windows SDK. Ta metoda wysyła komunikat EM_SETHILITE opisany w zestawie Windows SDK. Zarówno, SetHighlight jak i GetHighlight są włączone tylko dla kompilacji UNICODE.

CEdit::SetLimitText

Wywołaj tę funkcję składową, aby ustawić limit tekstu dla tego CEdit obiektu.

void SetLimitText(UINT nMax);

Parametry

nMax
Nowy limit tekstu w znakach.

Uwagi

Limit tekstu to maksymalna ilość tekstu w znakach, którą może zaakceptować kontrolka edycji.

Zmiana limitu tekstu ogranicza tylko tekst, który użytkownik może wprowadzić. Nie ma wpływu na żaden tekst już w kontrolce edycji ani nie ma wpływu na długość tekstu skopiowanego do kontrolki edycji przez funkcję składową SetWindowText w elemencie CWnd. Jeśli aplikacja używa SetWindowText funkcji, aby umieścić więcej tekstu w kontrolce edycji niż określono w wywołaniu metody LimitText, użytkownik może usunąć dowolny tekst w kontrolce edycji. Jednak limit tekstu uniemożliwi użytkownikowi zastąpienie istniejącego tekstu nowym tekstem, chyba że usunięcie bieżącego zaznaczenia spowoduje, że tekst spadnie poniżej limitu tekstu.

Ta funkcja zastępuje element LimitText w systemie Win32.

Aby uzyskać więcej informacji, zobacz EM_SETLIMITTEXT w zestawie Windows SDK.

Przykład

Zobacz przykład CEditView ::GetEditCtrl.

CEdit::SetMargins

Wywołaj tę metodę, aby ustawić lewe i prawe marginesy tej kontrolki edycji.

void SetMargins(
    UINT nLeft,
    UINT nRight);

Parametry

nLeft
Szerokość nowego lewego marginesu w pikselach.

nRight
Szerokość nowego prawego marginesu w pikselach.

Uwagi

Uwaga

Ta funkcja składowa jest dostępna od systemów Windows 95 i Windows NT 4.0.

Aby uzyskać więcej informacji, zobacz EM_SETMARGINS w zestawie Windows SDK.

Przykład

Zobacz przykład CEditView ::GetEditCtrl.

CEdit::SetModify

Wywołaj tę funkcję, aby ustawić lub wyczyścić zmodyfikowaną flagę kontrolki edycji.

void SetModify(BOOL bModified = TRUE);

Parametry

bModified
Wartość TRUE wskazuje, że tekst został zmodyfikowany, a wartość FALSE wskazuje, że jest niezmodyfikowany. Domyślnie jest ustawiona zmodyfikowana flaga.

Uwagi

Zmodyfikowana flaga wskazuje, czy tekst w kontrolce edycji został zmodyfikowany. Jest on ustawiany automatycznie za każdym razem, gdy użytkownik zmieni tekst. Jego wartość może zostać pobrana z funkcją składową GetModify .

Aby uzyskać więcej informacji, zobacz EM_SETMODIFY w zestawie Windows SDK.

Przykład

Zobacz przykład CEdit ::GetModify.

CEdit::SetPasswordChar

Wywołaj tę funkcję, aby ustawić lub usunąć znak hasła wyświetlany w kontrolce edycji, gdy użytkownik wpisze tekst.

void SetPasswordChar(TCHAR ch);

Parametry

Ch
Określa znak, który ma być wyświetlany zamiast znaku wpisanego przez użytkownika. Jeśli wartość ch wynosi 0, wyświetlane są rzeczywiste znaki wpisane przez użytkownika.

Uwagi

Po ustawieniu znaku hasła ten znak jest wyświetlany dla każdego znaku, którego użytkownik wpisze.

Ta funkcja składowa nie ma wpływu na kontrolkę edycji wielowierszowej.

Gdy wywoływana SetPasswordChar jest funkcja składowa, CEdit spowoduje ponowne rysowanie wszystkich widocznych znaków przy użyciu znaku określonego przez ch.

Jeśli kontrolka edycji zostanie utworzona przy użyciu stylu ES_PASSWORD , domyślny znak hasła zostanie ustawiony na gwiazdkę ( *). Ten styl jest usuwany, jeśli SetPasswordChar jest wywoływany z ustawieniem ch ustawionym na 0.

Aby uzyskać więcej informacji, zobacz EM_SETPASSWORDCHAR w zestawie Windows SDK.

Przykład

// Turn off the password mode.
m_myEdit.SetPasswordChar(0);
ASSERT(!(m_myEdit.GetStyle() & ES_PASSWORD));

CEdit::SetReadOnly

Wywołuje tę funkcję, aby ustawić stan tylko do odczytu kontrolki edycji.

BOOL SetReadOnly(BOOL bReadOnly = TRUE);

Parametry

bReadOnly
Określa, czy ustawić lub usunąć stan tylko do odczytu kontrolki edycji. Wartość TRUE ustawia stan na tylko do odczytu; wartość FALSE ustawia stan na odczyt/zapis.

Wartość zwracana

Niezerowe, jeśli operacja zakończyła się pomyślnie, lub 0, jeśli wystąpi błąd.

Uwagi

Bieżące ustawienie można znaleźć, testując flagę ES_READONLY w zwracanej wartości CWnd::GetStyle.

Aby uzyskać więcej informacji, zobacz EM_SETREADONLY w zestawie Windows SDK.

Przykład

// Set the edit control to be read-only.
m_myEdit.SetReadOnly(TRUE);
ASSERT(m_myEdit.GetStyle() & ES_READONLY);

CEdit::SetRect

Wywołaj tę funkcję, aby ustawić wymiary prostokąta przy użyciu określonych współrzędnych.

void SetRect(LPCRECT lpRect);

Parametry

lpRect
RECT Wskazuje strukturę lub CRect obiekt, który określa nowe wymiary prostokąta formatowania.

Uwagi

Ten element członkowski jest przetwarzany tylko przez kontrolki edycji wielu wierszy.

Służy SetRect do ustawiania prostokąta formatowania kontrolki edycji wielowierszowej. Prostokąt formatowania to prostokąt ograniczający tekst, który jest niezależny od rozmiaru okna kontrolki edycji. Po pierwszym utworzeniu kontrolki edycji prostokąt formatowania jest taki sam jak obszar klienta okna kontrolki edycji. Za pomocą funkcji składowej SetRect aplikacja może sprawić, że formatowanie prostokąta będzie większe lub mniejsze niż okno kontrolki edycji.

Jeśli kontrolka edycji nie ma paska przewijania, tekst zostanie obcięty, a nie opakowany, jeśli prostokąt formatowania jest większy niż okno. Jeśli kontrolka edycji zawiera obramowanie, prostokąt formatowania jest zmniejszany przez rozmiar obramowania. W przypadku dostosowania prostokąta zwróconego GetRect przez funkcję składową należy usunąć rozmiar obramowania przed przekazaniem prostokąta do SetRect.

Po SetRect wywołaniu tekst kontrolki edycji jest również ponownie sformatowany i ponownie odtworzony.

Aby uzyskać więcej informacji, zobacz EM_SETRECT w zestawie Windows SDK.

Przykład

// Flag indicating whether to redraw the edit control.
bool fRedraw = TRUE;

CRect r;

m_myEdit.GetRect(&r);

// Reduce the formatting rect of the edit control by
// 10 pixels on each side.
if ((r.Width() > 20) && (r.Height() > 20))
{
   r.DeflateRect(10, 10);

   if (fRedraw)
      m_myEdit.SetRect(&r);
   else
      m_myEdit.SetRectNP(&r);
}

CEdit::SetRectNP

Wywołaj tę funkcję, aby ustawić prostokąt formatowania kontrolki edycji wielowierszowej.

void SetRectNP(LPCRECT lpRect);

Parametry

lpRect
RECT Wskazuje strukturę lub CRect obiekt, który określa nowe wymiary prostokąta.

Uwagi

Prostokąt formatowania to prostokąt ograniczający tekst, który jest niezależny od rozmiaru okna kontrolki edycji.

SetRectNP jest identyczny z funkcją SetRect składową, z tą różnicą, że okno kontrolki edycji nie jest ponownie rysowane.

Po pierwszym utworzeniu kontrolki edycji prostokąt formatowania jest taki sam jak obszar klienta okna kontrolki edycji. Wywołując SetRectNP funkcję składową, aplikacja może sprawić, że prostokąt formatowania będzie większy lub mniejszy niż okno kontrolki edycji.

Jeśli kontrolka edycji nie ma paska przewijania, tekst zostanie obcięty, a nie opakowany, jeśli prostokąt formatowania jest większy niż okno.

Ten element członkowski jest przetwarzany tylko przez kontrolki edycji wielu wierszy.

Aby uzyskać więcej informacji, zobacz EM_SETRECTNP w zestawie Windows SDK.

Przykład

Zobacz przykład CEdit ::SetRect.

CEdit::SetSel

Wywołaj tę funkcję, aby wybrać zakres znaków w kontrolce edycji.

void SetSel(
    DWORD dwSelection,
    BOOL bNoScroll = FALSE);

void SetSel(
    int nStartChar,
    int nEndChar,
    BOOL bNoScroll = FALSE);

Parametry

dwSelection
Określa pozycję początkową w wyrazie o niskiej kolejności i pozycji końcowej w wyrazie o wysokiej kolejności. Jeśli wyraz o niskiej kolejności to 0, a wyraz o wysokiej kolejności to -1, zaznaczono cały tekst w kontrolce edycji. Jeśli wyraz o niskiej kolejności to -1, wszystkie bieżące zaznaczenie zostanie usunięte.

bNoScroll
Wskazuje, czy daszek powinien zostać przewinięty do widoku. Jeśli fałsz, daszek jest przewijany do widoku. Jeśli wartość TRUE, daszek nie jest przewijany do widoku.

nStartChar
Określa pozycję początkową. Jeśli parametr nStartChar wynosi 0, a nEndChar to -1, zaznaczono cały tekst w kontrolce edycji. Jeśli parametr nStartChar wynosi -1, wszystkie bieżące zaznaczenie zostanie usunięte.

nEndChar
Określa położenie końcowe.

Uwagi

Aby uzyskać więcej informacji, zobacz EM_SETSEL w zestawie Windows SDK.

Przykład

Zobacz przykład CEdit::GetSel.

CEdit::SetTabStops

Wywołaj tę funkcję, aby ustawić tabulatory w kontrolce edycji wielowierszowej.

void SetTabStops();
BOOL SetTabStops(const int& cxEachStop);

BOOL SetTabStops(
    int nTabStops,
    LPINT rgTabStops);

Parametry

cxEachStop
Określa, że tabulatory mają być ustawione dla każdej jednostki okna dialogowego cxEachStop .

nTabStops
Określa liczbę zatrzymań tabulatorów zawartych w rgTabStops. Ta liczba musi być większa niż 1.

rgTabStops
Wskazuje tablicę niepodpisanych liczb całkowitych określających tabulatory w jednostkach dialogowych. Jednostka okna dialogowego to odległość pozioma lub pionowa. Jedna pozioma jednostka okna dialogowego jest równa jednej czwartej bieżącej jednostki szerokości bazowej okna dialogowego, a 1 pionowa jednostka okna dialogowego jest równa jednej ósmej bieżącej jednostki wysokości bazowej okna dialogowego. Jednostki podstawowe okna dialogowego są obliczane na podstawie wysokości i szerokości bieżącej czcionki systemowej. Funkcja GetDialogBaseUnits systemu Windows zwraca bieżące jednostki podstawowe okna dialogowego w pikselach.

Wartość zwracana

Nonzero, jeśli karty zostały ustawione; w przeciwnym razie 0.

Uwagi

Gdy tekst jest kopiowany do kontrolki edycji wielu wierszy, każdy znak tabulacji w tekście spowoduje wygenerowanie miejsca do następnego zatrzymania karty.

Aby ustawić tabulator zatrzymuje się do domyślnego rozmiaru 32 jednostek okna dialogowego, wywołaj bez parametrów wersję tej funkcji składowej. Aby ustawić tabulator zatrzymuje rozmiar inny niż 32, wywołaj wersję za pomocą parametru cxEachStop . Aby ustawić tabulatory na tablicę rozmiarów, użyj wersji z dwoma parametrami.

Ta funkcja składowa jest przetwarzana tylko przez kontrolki edycji wielu wierszy.

SetTabStops nie powoduje automatycznego ponownego wyrysowania okna edycji. Jeśli zmienisz kartę dla tekstu już w kontrolce edycji, wywołaj metodę CWnd::InvalidateRect , aby ponownie wyrysować okno edycji.

Aby uzyskać więcej informacji, zobacz EM_SETTABSTOPS i GetDialogBaseUnits w zestawie WINDOWS SDK.

Przykład

Zobacz przykład CEditView ::SetTabStops.

CEdit::ShowBalloonTip

Wyświetla poradę dymka skojarzoną z bieżącą kontrolką edycji.

BOOL ShowBalloonTip(PEDITBALLOONTIP pEditBalloonTip);

BOOL ShowBalloonTip(
    LPCWSTR lpszTitle,
    LPCWSTR lpszText,
    INT ttiIcon = TTI_NONE);

Parametry

pEditBalloonTip
[in] Wskaźnik do struktury EDITBALLOONTIP , która opisuje końcówkę balonu.

lpszTitle
[in] Wskaźnik do ciągu Unicode, który zawiera tytuł końcówki balonu.

lpszText
[in] Wskaźnik do ciągu Unicode, który zawiera tekst porad balonu.

ttiIcon
[in] InT, który określa typ ikony do skojarzenia z poradą balonu. Wartość domyślna to TTI_NONE. Aby uzyskać więcej informacji, zobacz ttiIcon element członkowski struktury EDITBALLOONTIP .

Wartość zwracana

Wartość TRUE, jeśli ta metoda zakończyła się pomyślnie; w przeciwnym razie, FAŁSZ.

Uwagi

Ta funkcja wysyła komunikat EM_SHOWBALLOONTIP opisany w zestawie Windows SDK. Aby uzyskać więcej informacji, zobacz makro Edit_ShowBalloonTip .

Przykład

Pierwszy przykład kodu definiuje zmienną , m_ceditktóra jest używana do uzyskiwania dostępu do bieżącej kontrolki edycji. Ta zmienna jest używana w następnym przykładzie.

public:
// Variable to access the edit control.
CEdit m_cedit;

W następnym przykładzie kodu jest wyświetlana porada dymka dla kontrolki edycji. Metoda CEdit::ShowBalloonTip określa tytuł i tekst porady balonu.

m_cedit.ShowBalloonTip(
    _T("CEdit Balloon Tip"), // title
    _T("Here's a tip!"),     // text
    TTI_INFO);

CEdit::Undo

Wywołaj tę funkcję, aby cofnąć ostatnią operację kontroli edycji.

BOOL Undo();

Wartość zwracana

W przypadku kontrolki edycji jednowierszowej zwracana wartość jest zawsze niezerowa. W przypadku kontrolki edycji wielowierszowej wartość zwracana jest niezerowa, jeśli operacja cofania zakończy się pomyślnie, lub 0, jeśli operacja cofania zakończy się niepowodzeniem.

Uwagi

Można również cofnąć operację cofania. Możesz na przykład przywrócić usunięty tekst przy użyciu pierwszego wywołania metody Undo. Tak długo, jak nie ma interweniowania operacji edycji, możesz usunąć tekst ponownie za pomocą drugiego wywołania metody Undo.

Aby uzyskać więcej informacji, zobacz EM_UNDO w zestawie Windows SDK.

Przykład

// Undo the last operation, if possible.
if (m_myEdit.CanUndo())
   m_myEdit.Undo();

Zobacz też

Przykład MFC — CALCDRIV
Przykładowe CMNCTRL2 MFC
Klasa CWnd
Wykres hierarchii
Klasa CWnd
Klasa CButton
Klasa CComboBox
Klasa CListBox
Klasa CScrollBar
Klasa CStatic
Klasa CDialog