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 CEdit elementu . |
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 CEdit elementu . |
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 CEdit
klasy . 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 CDialog
klasy ), 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 CEdit
programu , zobacz Kontrolki.
Hierarchia dziedziczenia
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 Create
metodę 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 CEdit
klasy , dodaj mapę komunikatów do nowej klasy i przesłoń powyższe funkcje składowe programu obsługi komunikatów. Zastąpij OnCreate
na 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 FmtLines
wartość .
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_cedit
któ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