CEdit-Klasse

Stellt die Funktionalität eines Windows-Bearbeitungssteuerelements bereit.

Syntax

class CEdit : public CWnd

Member

Öffentliche Konstruktoren

Name Beschreibung
CEdit::CEdit Erstellt ein CEdit Steuerelementobjekt.

Öffentliche Methoden

Name Beschreibung
CEdit::CanUndo Bestimmt, ob ein Bearbeitungssteuerelementvorgang rückgängig gemacht werden kann.
CEdit::CharFromPos Ruft die Zeilen- und Zeichenindizes für das Zeichen ab, das einer angegebenen Position am nächsten kommt.
CEdit::Clear Löscht die aktuelle Auswahl (falls vorhanden) im Bearbeitungssteuerelement.
CEdit::Copy Kopiert die aktuelle Auswahl (falls vorhanden) im Bearbeitungssteuerelement in die Zwischenablage im CF_TEXT Format.
CEdit::Create Erstellt das Windows-Bearbeitungssteuerelement und fügt es an das CEdit Objekt an.
CEdit::Cut Löscht (Schnitte) die aktuelle Auswahl (falls vorhanden) im Bearbeitungssteuerelement und kopiert den gelöschten Text in die Zwischenablage im CF_TEXT Format.
CEdit::EmptyUndoBuffer Setzt das Rückgängig-Kennzeichen eines Bearbeitungssteuerelements zurück (löscht sie).
CEdit::FmtLines Legt die Aufnahme von Zeichen für weiche Zeilenumbrüche innerhalb eines mehrzeiligen Bearbeitungssteuerelements fest.
CEdit::GetCueBanner Ruft den Text ab, der als Texthinweis oder Tipp angezeigt wird, in einem Bearbeitungssteuerelement, wenn das Steuerelement leer ist und nicht den Fokus hat.
CEdit::GetFirstVisibleLine Bestimmt die oberste sichtbare Linie in einem Bearbeitungssteuerelement.
CEdit::GetHandle Ruft ein Handle für den Speicher ab, der derzeit für ein mehrzeiliges Bearbeitungssteuerelement zugewiesen ist.
CEdit::GetHighlight Ruft die Indizes der Anfangs- und Endzeichen in einem Textbereich ab, der im aktuellen Bearbeitungssteuerelement hervorgehoben ist.
CEdit::GetLimitText Ruft die maximale Textmenge ab, CEdit die enthalten kann.
CEdit::GetLine Ruft eine Textzeile aus einem Bearbeitungssteuerelement ab.
CEdit::GetLineCount Ruft die Anzahl der Zeilen in einem mehrzeiligen Bearbeitungssteuerelement ab.
CEdit::GetMargins Ruft die linken und rechten Seitenränder dafür CEditab.
CEdit::GetModify Bestimmt, ob der Inhalt eines Bearbeitungssteuerelements geändert wurde.
CEdit::GetPasswordChar Ruft das Kennwortzeichen ab, das in einem Bearbeitungssteuerelement angezeigt wird, wenn der Benutzer Text eingibt.
CEdit::GetRect Ruft das Formatierungsrechteck eines Bearbeitungssteuerelements ab.
CEdit::GetSel Ruft die position des ersten und letzten Zeichens der aktuellen Auswahl in einem Bearbeitungssteuerelement ab.
CEdit::HideBalloonTip Blendet alle Sprechblasentippen aus, die dem aktuellen Bearbeitungssteuerelement zugeordnet sind.
CEdit::LimitText Beschränkt die Länge des Texts, den der Benutzer in ein Bearbeitungssteuerelement eingeben kann.
CEdit::LineFromChar Ruft die Zeilennummer der Zeile ab, die den angegebenen Zeichenindex enthält.
CEdit::LineIndex Ruft den Zeichenindex einer Zeile innerhalb eines mehrzeiligen Bearbeitungssteuerelements ab.
CEdit::LineLength Ruft die Länge einer Zeile in einem Bearbeitungssteuerelement ab.
CEdit::LineScroll Scrollt den Text eines mehrzeiligen Bearbeitungssteuerelements.
CEdit::P aste Fügt die Daten aus der Zwischenablage an der aktuellen Cursorposition in das Bearbeitungssteuerelement ein. Daten werden nur eingefügt, wenn die Zwischenablage Daten im CF_TEXT Format enthält.
CEdit::P osFromChar Ruft die Koordinaten der oberen linken Ecke eines angegebenen Zeichenindexes ab.
CEdit::ReplaceSel Ersetzt die aktuelle Markierung in einem Bearbeitungssteuerelement durch den angegebenen Text.
CEdit::SetCueBanner Legt den Text fest, der als Textmarker oder Tipp in einem Bearbeitungssteuerelement angezeigt wird, wenn das Steuerelement leer ist und nicht den Fokus hat.
CEdit::SetHandle Legt das Handle auf den lokalen Speicher fest, der von einem Mehrzeilen-Bearbeitungssteuerelement verwendet wird.
CEdit::SetHighlight Hebt einen Textbereich hervor, der im aktuellen Bearbeitungssteuerelement angezeigt wird.
CEdit::SetLimitText Legt die maximale Textmenge fest, CEdit die enthalten kann.
CEdit::SetMargins Legt die linken und rechten Seitenränder dafür CEditfest.
CEdit::SetModify Legt das Änderungskennzeichnung für ein Bearbeitungssteuerelement fest oder löscht sie.
CEdit::SetPasswordChar Legt fest oder entfernt ein Kennwortzeichen, das in einem Bearbeitungssteuerelement angezeigt wird, wenn der Benutzer Text eingibt.
CEdit::SetReadOnly Legt den schreibgeschützten Zustand eines Bearbeitungssteuerelements fest.
CEdit::SetRect Legt das Formatierungsrechteck eines mehrzeiligen Bearbeitungssteuerelements fest und aktualisiert das Steuerelement.
CEdit::SetRectNP Legt das Formatierungsrechteck eines mehrzeiligen Bearbeitungssteuerelements fest, ohne das Steuerelementfenster neu zu bearbeiten.
CEdit::SetSel Wählt einen Bereich von Zeichen in einem Bearbeitungssteuerelement aus.
CEdit::SetTabStops Legt die Tabstopps in einem mehrzeiligen Bearbeitungssteuerelement fest.
CEdit::ShowBalloonTip Zeigt einen Sprechblasentipp an, der dem aktuellen Bearbeitungssteuerelement zugeordnet ist.
CEdit::Undo Kehrt den letzten Bearbeitungssteuerungsvorgang um.

Hinweise

Ein Bearbeitungssteuerelement ist ein rechteckiges untergeordnetes Fenster, in das der Benutzer Text eingeben kann.

Sie können ein Bearbeitungssteuerelement entweder aus einer Dialogfeldvorlage oder direkt in Ihrem Code erstellen. Rufen Sie in beiden Fällen zuerst den Konstruktor CEdit auf, um das CEdit Objekt zu erstellen, und rufen Sie dann die Create-Memberfunktion auf, um das Windows-Bearbeitungssteuerelement zu erstellen und es an das CEdit Objekt anzufügen.

Die Konstruktion kann ein einstufiger Prozess in einer Klasse sein, die von CEdit. Schreiben Sie einen Konstruktor für die abgeleitete Klasse und den Aufruf Create innerhalb des Konstruktors.

CEdit erbt erhebliche Funktionen von CWnd. Verwenden Sie zum Festlegen und Abrufen von Text aus einem CEdit Objekt die CWnd Memberfunktionen SetWindowText und GetWindowText, die den gesamten Inhalt eines Bearbeitungssteuerelements festlegen oder abrufen, auch wenn es sich um ein mehrteiliges Steuerelement handelt. Textzeilen in einem mehrteiligen Steuerelement werden durch "\r\n"-Zeichensequenzen getrennt. Wenn ein Bearbeitungssteuerelement mehrline ist, rufen Sie außerdem einen Teil des Texts des Steuerelements ab, und legen Sie sie fest, indem Sie die CEdit Memberfunktionen GetLine, SetSel, GetSel und ReplaceSel aufrufen.

Wenn Sie Windows-Benachrichtigungen behandeln möchten, die von einem Bearbeitungssteuerelement an das übergeordnete Steuerelement gesendet werden (in der Regel eine klasse abgeleitet von CDialog), fügen Sie der übergeordneten Klasse für jede Nachricht eine Elementfunktion für nachrichtenzuordnungs- und nachrichtenhandler-Member hinzu.

Jeder Nachrichtenzuordnungseintrag hat die folgende Form:

ON_NOTIFICATION(id,memberFxn)

dabei id wird die untergeordnete Fenster-ID des Bearbeitungssteuerelements angegeben, das die Benachrichtigung sendet, und memberFxn der Name der übergeordneten Memberfunktion, die Sie für die Verarbeitung der Benachrichtigung geschrieben haben.

Der Funktionsprototyp des übergeordneten Elements lautet wie folgt:

afx_msg void memberFxn ( );

Nachfolgend finden Sie eine Liste potenzieller Nachrichtenzuordnungseinträge und eine Beschreibung der Fälle, in denen sie an das übergeordnete Element gesendet werden:

  • ON_EN_CHANGE Der Benutzer hat eine Aktion ausgeführt, die text in einem Bearbeitungssteuerelement möglicherweise geändert hat. Im Gegensatz zur EN_UPDATE Benachrichtigung wird diese Benachrichtigung nach dem Aktualisieren der Anzeige von Windows gesendet.

  • ON_EN_ERRSPACE Das Bearbeitungssteuerelement kann nicht genügend Arbeitsspeicher zuweisen, um eine bestimmte Anforderung zu erfüllen.

  • ON_EN_HSCROLL Der Benutzer klickt auf die horizontale Bildlaufleiste eines Bearbeitungssteuerelements. Das übergeordnete Fenster wird benachrichtigt, bevor der Bildschirm aktualisiert wird.

  • ON_EN_KILLFOCUS Das Bearbeitungssteuerelement verliert den Eingabefokus.

  • ON_EN_MAXTEXT Die aktuelle Einfügung hat die angegebene Anzahl von Zeichen für das Bearbeitungssteuerelement überschritten und wurde abgeschnitten. Wird auch gesendet, wenn ein Bearbeitungssteuerelement nicht über die ES_AUTOHSCROLL Formatvorlage verfügt und die Anzahl der einzufügenden Zeichen die Breite des Bearbeitungssteuerelements überschreitet. Wird auch gesendet, wenn ein Bearbeitungssteuerelement nicht über die ES_AUTOVSCROLL Formatvorlage verfügt und die Gesamtanzahl der Zeilen, die sich aus einer Texteinfügung ergeben, die Höhe des Bearbeitungssteuerelements überschreitet.

  • ON_EN_SETFOCUS Gesendet, wenn ein Bearbeitungssteuerelement den Eingabefokus erhält.

  • ON_EN_UPDATE Das Bearbeitungssteuerelement ist dabei, geänderten Text anzuzeigen. Gesendet, nachdem das Steuerelement den Text formatiert hat, aber bevor er den Text anzeigt, damit die Fenstergröße bei Bedarf geändert werden kann.

  • ON_EN_VSCROLL Der Benutzer klickt auf die vertikale Bildlaufleiste eines Bearbeitungssteuerelements. Das übergeordnete Fenster wird benachrichtigt, bevor der Bildschirm aktualisiert wird.

Wenn Sie ein CEdit Objekt in einem Dialogfeld erstellen, wird das CEdit Objekt automatisch zerstört, wenn der Benutzer das Dialogfeld schließt.

Wenn Sie ein CEdit Objekt aus einer Dialogressource mithilfe des Dialogfeld-Editors erstellen, wird das CEdit Objekt automatisch zerstört, wenn der Benutzer das Dialogfeld schließt.

Wenn Sie ein CEdit Objekt in einem Fenster erstellen, müssen Sie es möglicherweise auch zerstören. Wenn Sie das CEdit Objekt auf dem Stapel erstellen, wird es automatisch zerstört. Wenn Sie das CEdit Objekt im Heap mithilfe der new Funktion erstellen, müssen Sie das Objekt aufrufen delete , um es zu zerstören, wenn der Benutzer das Windows-Bearbeitungssteuerelement beendet. Wenn Sie speicher CEdit im Objekt zuordnen, überschreiben Sie den CEdit Destruktor, um die Zuordnungen zu löschen.

Um bestimmte Formatvorlagen in einem Bearbeitungssteuerelement (z. B. ES_READONLY) zu ändern, müssen Sie bestimmte Nachrichten an das Steuerelement senden, anstatt ModifyStyle zu verwenden. Siehe Bearbeiten von Steuerelementformatvorlagen im Windows SDK.

Weitere Informationen finden CEditSie unter "Steuerelemente".

Vererbungshierarchie

CObject

CCmdTarget

CWnd

CEdit

Anforderungen

Header: afxwin.h

CEdit::CanUndo

Rufen Sie diese Funktion auf, um zu ermitteln, ob der letzte Bearbeitungsvorgang rückgängig gemacht werden kann.

BOOL CanUndo() const;

Rückgabewert

Nonzero, wenn der letzte Bearbeitungsvorgang durch einen Aufruf der Undo Memberfunktion rückgängig gemacht werden kann; 0, wenn er nicht rückgängig gemacht werden kann.

Hinweise

Weitere Informationen finden Sie unter EM_CANUNDO im Windows SDK.

Beispiel

Sehen Sie sich das Beispiel für CEdit::Undo an.

CEdit::CEdit

Erstellt ein CEdit-Objekt.

CEdit();

Hinweise

Verwenden Sie "Erstellen ", um das Windows-Bearbeitungssteuerelement zu erstellen.

Beispiel

// Declare a local CEdit object.
CEdit myEdit;

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

CEdit::CharFromPos

Rufen Sie diese Funktion auf, um die nullbasierten Zeilen- und Zeichenindizes des Zeichens abzurufen, das dem angegebenen Punkt in diesem CEdit Steuerelement am nächsten ist.

int CharFromPos(CPoint pt) const;

Parameter

pt
Die Koordinaten eines Punkts im Clientbereich dieses CEdit Objekts.

Rückgabewert

Der Zeichenindex in word mit niedriger Reihenfolge und der Zeilenindex in der Hochreihenfolge von WORD.

Hinweise

Hinweis

Diese Memberfunktion ist ab Windows 95 und Windows NT 4.0 verfügbar.

Weitere Informationen finden Sie unter EM_CHARFROMPOS im Windows SDK.

Beispiel

// 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

Rufen Sie diese Funktion auf, um die aktuelle Auswahl (falls vorhanden) im Bearbeitungssteuerelement zu löschen (löschen).

void Clear();

Hinweise

Der von Clear ihnen ausgeführte Löschvorgang kann durch Aufrufen der Rückgängig-Memberfunktion rückgängig gemacht werden.

Um die aktuelle Auswahl zu löschen und den gelöschten Inhalt in die Zwischenablage zu setzen, rufen Sie die Memberfunktion "Ausschneiden " auf.

Weitere Informationen finden Sie unter WM_CLEAR im Windows SDK.

Beispiel

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

CEdit::Copy

Rufen Sie diese Funktion auf, um die aktuelle Auswahl (falls vorhanden) im Bearbeitungssteuerelement in die Zwischenablage im CF_TEXT Format zu verschieben.

void Copy();

Hinweise

Weitere Informationen finden Sie unter WM_COPY im Windows SDK.

Beispiel

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

CEdit::Create

Erstellt das Windows-Bearbeitungssteuerelement und fügt es an das CEdit Objekt an.

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

Parameter

dwStyle
Gibt die Formatvorlage des Bearbeitungssteuerelements an. Wenden Sie eine beliebige Kombination von Bearbeitungsformatvorlagen auf das Steuerelement an.

Rect
Gibt die Größe und Position des Bearbeitungssteuerelements an. Kann ein Objekt oder RECT eine CRect Struktur sein.

pParentWnd
Gibt das übergeordnete Fenster des Bearbeitungssteuerelements an (in der Regel a CDialog). Er darf nicht NULL sein.

Nid
Gibt die ID des Bearbeitungssteuerelements an.

Rückgabewert

Nonzero, wenn die Initialisierung erfolgreich ist; andernfalls 0.

Hinweise

Sie erstellen ein CEdit Objekt in zwei Schritten. Rufen Sie zuerst den CEdit Konstruktor auf, und rufen Sie dann auf Create, wodurch das Windows-Bearbeitungssteuerelement erstellt und an das CEdit Objekt angefügt wird.

Bei Create Ausführung sendet Windows die Nachrichten WM_NCCREATE, WM_NCCALCSIZE, WM_CREATE und WM_GETMINMAXINFO an das Bearbeitungssteuerelement.

Diese Nachrichten werden standardmäßig von den Memberfunktionen "OnNcCreate", "OnNcCalcSize", "OnCreate" und "OnGetMinMaxInfo " in der CWnd Basisklasse behandelt. Um die Standardmäßige Nachrichtenbehandlung zu erweitern, leiten Sie eine Klasse ab CEdit, fügen Sie der neuen Klasse eine Nachrichtenzuordnung hinzu, und überschreiben Sie die obigen Nachrichtenhandlermemmfunktionen. Überschreiben OnCreateSie z. B. die erforderliche Initialisierung für die neue Klasse.

Wenden Sie die folgenden Fensterformatvorlagen auf ein Bearbeitungssteuerelement an.

  • WS_CHILD Always

  • WS_VISIBLE in der Regel

  • WS_DISABLED selten

  • WS_GROUP Gruppieren von Steuerelementen

  • WS_TABSTOP So fügen Sie das Bearbeitungssteuerelement in die Aktivierreihenfolge ein

Beispiel

// 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

Rufen Sie diese Funktion auf, um die aktuelle Auswahl (sofern vorhanden) im Bearbeitungssteuerelement zu löschen (ausschneiden), und kopieren Sie den gelöschten Text in die Zwischenablage im CF_TEXT Format.

void Cut();

Hinweise

Der von Cut ihnen ausgeführte Löschvorgang kann durch Aufrufen der Rückgängig-Memberfunktion rückgängig gemacht werden.

Um die aktuelle Auswahl zu löschen, ohne den gelöschten Text in die Zwischenablage zu setzen, rufen Sie die Funktion "Member löschen" auf.

Weitere Informationen finden Sie unter WM_CUT im Windows SDK.

Beispiel

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

CEdit::EmptyUndoBuffer

Rufen Sie diese Funktion auf, um das Rückgängig-Kennzeichen eines Bearbeitungssteuerelements zurückzusetzen (löschen).

void EmptyUndoBuffer();

Hinweise

Das Bearbeitungssteuerelement kann den letzten Vorgang jetzt nicht rückgängig machen. Das Rückgängig-Kennzeichen wird festgelegt, wenn ein Vorgang innerhalb des Bearbeitungssteuerelements rückgängig gemacht werden kann.

Das Rückgängig-Flag wird automatisch gelöscht, wenn die SetWindowText - oder SetHandle-MemberfunktionenCWnd aufgerufen werden.

Weitere Informationen finden Sie unter EM_EMPTYUNDOBUFFER im Windows SDK.

Beispiel

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

CEdit::FmtLines

Rufen Sie diese Funktion auf, um die Ein- oder Ausschaltung von Zeichen für weiche Zeilenumbrüche in einem Mehrzeilen-Bearbeitungssteuerelement festzulegen.

BOOL FmtLines(BOOL bAddEOL);

Parameter

bAddEOL
Gibt an, ob Zeilenumbruchzeichen eingefügt werden sollen. Ein Wert von TRUE fügt die Zeichen ein; Ein Wert von FALSE entfernt sie.

Rückgabewert

Nonzero, wenn formatierungen auftreten; andernfalls 0.

Hinweise

Ein weicher Zeilenumbruch besteht aus zwei Wagenrücklaufs und einem Zeilenvorschub, der am Ende einer Zeile eingefügt wird, die aufgrund des Umbruchs eines Worts unterbrochen wird. Ein harter Zeilenumbruch besteht aus einem Wagenrücklauf und einem Zeilenvorschub. Zeilen, die mit einem harten Zeilenumbruch enden, sind nicht betroffen.FmtLines

Windows reagiert nur, wenn es sich bei dem CEdit Objekt um ein mehrzeiliges Bearbeitungssteuerelement handelt.

FmtLineswirkt sich nur auf den von GetHandle zurückgegebenen Puffer und den von WM_GETTEXT zurückgegebenen Text aus. Sie hat keine Auswirkungen auf die Anzeige des Texts innerhalb des Bearbeitungssteuerelements.

Weitere Informationen finden Sie unter EM_FMTLINES im Windows SDK.

Beispiel

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

Ruft den Text ab, der als Texthinweis oder Tipp in einem Bearbeitungssteuerelement angezeigt wird, wenn das Steuerelement leer ist.

BOOL GetCueBanner(
    LPWSTR lpszText,
    int cchText) const;

CString GetCueBanner() const;

Parameter

lpszText
[out] Ein Zeiger auf eine Zeichenfolge, die den Hinweistext enthält.

cchText
[in] Die Anzahl der Zeichen, die empfangen werden können. Diese Zahl enthält das endende NULL-Zeichen.

Rückgabewert

Bei der ersten Überladung true, wenn die Methode erfolgreich ist; andernfalls FALSE.

Für die zweite Überladung enthält eine CString , die den Hinweistext enthält, wenn die Methode erfolgreich ist; andernfalls die leere Zeichenfolge ("").

Hinweise

Diese Methode sendet die EM_GETCUEBANNER Nachricht, die im Windows SDK beschrieben wird. Weitere Informationen finden Sie im Edit_GetCueBannerText-Makro .

CEdit::GetFirstVisibleLine

Rufen Sie diese Funktion auf, um die oberste sichtbare Zeile in einem Bearbeitungssteuerelement zu bestimmen.

int GetFirstVisibleLine() const;

Rückgabewert

Der nullbasierte Index der obersten sichtbaren Linie. Bei einzeiligen Bearbeitungssteuerelementen ist der Rückgabewert 0.

Hinweise

Weitere Informationen finden Sie unter EM_GETFIRSTVISIBLELINE im Windows SDK.

Beispiel

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

Rufen Sie diese Funktion auf, um ein Handle für den derzeit für ein Mehrzeilen-Bearbeitungssteuerelement zugewiesenen Speicher abzurufen.

HLOCAL GetHandle() const;

Rückgabewert

Ein lokales Speicherhandle, das den Puffer identifiziert, der den Inhalt des Bearbeitungssteuerelements enthält. Wenn ein Fehler auftritt, z. B. das Senden der Nachricht an ein einzeiliges Bearbeitungssteuerelement, lautet der Rückgabewert 0.

Hinweise

Das Handle ist ein lokales Speicherhandle und kann von einer der lokalen Windows-Speicherfunktionen verwendet werden, die ein lokales Speicherhandle als Parameter verwenden.

GetHandle wird nur von mehrzeiligen Bearbeitungssteuerelementen verarbeitet.

Aufrufen GetHandle eines Mehrzeilen-Bearbeitungssteuerelements in einem Dialogfeld nur, wenn das Dialogfeld mit dem DS_LOCALEDIT Formatvorlagen-Flags erstellt wurde. Wenn die DS_LOCALEDIT Formatvorlage nicht festgelegt ist, erhalten Sie trotzdem einen Nichtzero-Rückgabewert, aber Sie können den zurückgegebenen Wert nicht verwenden.

Hinweis

GetHandle funktioniert nicht mit Windows 95/98. Wenn Sie in Windows 95/98 anrufen GetHandle , wird NULL zurückgegeben. GetHandle funktioniert wie unter Windows NT, Versionen 3.51 und höher dokumentiert.

Weitere Informationen finden Sie unter EM_GETHANDLE im Windows SDK.

Beispiel

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

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

::LocalUnlock(h);

CEdit::GetHighlight

Ruft die Indizes der ersten und letzten Zeichen in einem Textbereich ab, der im aktuellen Bearbeitungssteuerelement hervorgehoben ist.

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

Parameter

pichStart
[out] Nullbasierter Index des ersten Zeichens im Textbereich, der hervorgehoben ist.

pichEnd
[out] Nullbasierter Index des letzten Zeichens im Textbereich, der hervorgehoben ist.

Rückgabewert

TRUE, wenn diese Methode erfolgreich ist; andernfalls FALSE.

Hinweise

Diese Methode sendet die EM_GETHILITE Nachricht, die im Windows SDK beschrieben wird. Beide SetHighlight und GetHighlight sind derzeit nur für UNICODE-Builds aktiviert.

CEdit::GetLimitText

Rufen Sie diese Memberfunktion auf, um den Textgrenzwert für dieses CEdit Objekt abzurufen.

UINT GetLimitText() const;

Rückgabewert

Die aktuelle Textgrenze in TCHARs für dieses CEdit Objekt.

Hinweise

Der Textgrenzwert ist die maximale Textmenge in TCHARs, die das Bearbeitungssteuerelement akzeptieren kann.

Hinweis

Diese Memberfunktion ist ab Windows 95 und Windows NT 4.0 verfügbar.

Weitere Informationen finden Sie unter EM_GETLIMITTEXT im Windows SDK.

Beispiel

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

Rufen Sie diese Funktion auf, um eine Textzeile aus einem Bearbeitungssteuerelement abzurufen und sie in lpszBuffer zu platzieren.

int GetLine(
    int nIndex,
    LPTSTR lpszBuffer) const;

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

Parameter

nIndex
Gibt die Zeilennummer an, die aus einem Mehrfachzeilen-Bearbeitungssteuerelement abgerufen werden soll. Zeilennummern sind nullbasiert; ein Wert von 0 gibt die erste Zeile an. Dieser Parameter wird von einem einzeiligen Bearbeitungssteuerelement ignoriert.

lpszBuffer
Verweist auf den Puffer, der eine Kopie der Zeile empfängt. Das erste Wort des Puffers muss die maximale Anzahl von TCHARs angeben, die in den Puffer kopiert werden können.

nMaxLength
Gibt die maximale Anzahl von TCHAR-Zeichen an, die in den Puffer kopiert werden können. GetLine platziert diesen Wert im ersten Wort von lpszBuffer , bevor der Aufruf an Windows vorgenommen wird.

Rückgabewert

Die Anzahl der tatsächlich kopierten Zeichen. Der Rückgabewert ist 0, wenn die durch nIndex angegebene Zeilennummer größer als die Anzahl der Zeilen im Bearbeitungssteuerelement ist.

Hinweise

Die kopierte Zeile enthält kein Null-Beendigungszeichen.

Weitere Informationen finden Sie unter EM_GETLINE im Windows SDK.

Beispiel

Sehen Sie sich das Beispiel für CEdit::GetLineCount an.

CEdit::GetLineCount

Rufen Sie diese Funktion auf, um die Anzahl der Zeilen in einem Mehrzeilen-Bearbeitungssteuerelement abzurufen.

int GetLineCount() const;

Rückgabewert

Eine ganze Zahl, die die Anzahl der Zeilen im Mehrfachzeilen-Bearbeitungssteuerelement enthält. Wenn kein Text in das Bearbeitungssteuerelement eingegeben wurde, lautet der Rückgabewert 1.

Hinweise

GetLineCount wird nur von Mehrzeilen-Bearbeitungssteuerelementen verarbeitet.

Weitere Informationen finden Sie unter EM_GETLINECOUNT im Windows SDK.

Beispiel

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

Rufen Sie diese Memberfunktion auf, um die linken und rechten Seitenränder dieses Bearbeitungssteuerelements abzurufen.

DWORD GetMargins() const;

Rückgabewert

Die Breite des linken Rands in word mit niedriger Reihenfolge und die Breite des rechten Rands in der hochgeordneten WORD-Reihenfolge.

Hinweise

Ränder werden in Pixel gemessen.

Hinweis

Diese Memberfunktion ist ab Windows 95 und Windows NT 4.0 verfügbar.

Weitere Informationen finden Sie unter EM_GETMARGINS im Windows SDK.

Beispiel

Sehen Sie sich das Beispiel für CEditView::GetEditCtrl an.

CEdit::GetModify

Rufen Sie diese Funktion auf, um zu bestimmen, ob der Inhalt eines Bearbeitungssteuerelements geändert wurde.

BOOL GetModify() const;

Rückgabewert

Nonzero, wenn der Inhalt des Bearbeitungssteuerelements geändert wurde; 0, wenn sie unverändert sind Standard.

Hinweise

Windows Standard enthält ein internes Flag, das angibt, ob der Inhalt des Bearbeitungssteuerelements geändert wurde. Dieses Kennzeichen wird gelöscht, wenn das Bearbeitungssteuerelement zum ersten Mal erstellt wird und möglicherweise auch durch Aufrufen der SetModify-Memberfunktion gelöscht wird.

Weitere Informationen finden Sie unter EM_GETMODIFY im Windows SDK.

Beispiel

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

CEdit::GetPasswordChar

Rufen Sie diese Funktion auf, um das Kennwortzeichen abzurufen, das in einem Bearbeitungssteuerelement angezeigt wird, wenn der Benutzer Text eingibt.

TCHAR GetPasswordChar() const;

Rückgabewert

Gibt das Zeichen an, das anstelle des vom Benutzer eingegebenen Zeichens angezeigt werden soll. Der Rückgabewert ist NULL, wenn kein Kennwortzeichen vorhanden ist.

Hinweise

Wenn Sie das Bearbeitungssteuerelement mit der ES_PASSWORD Formatvorlage erstellen, bestimmt die DLL, die das Steuerelement unterstützt, das Standardkennwortzeichen. Das Manifest oder die InitCommonControlsEx-Methode bestimmt, welche DLL das Bearbeitungssteuerelement unterstützt. Wenn user32.dll das Bearbeitungssteuerelement unterstützt, lautet das Standardkennwortzeichen ASTERISK ('*', U+002A). Wenn comctl32.dll Version 6 das Bearbeitungssteuerelement unterstützt, ist das Standardzeichen BLACK CIRCLE ('●', U+25CF). Weitere Informationen dazu, welche DLL und Version die allgemeinen Steuerelemente unterstützt, finden Sie unter Shell- und Common Controls-Versionen.

Diese Methode sendet die EM_GETPASSWORDCHAR Nachricht, die im Windows SDK beschrieben wird.

Beispiel

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

CEdit::GetRect

Rufen Sie diese Funktion auf, um das Formatierungsrechteck eines Bearbeitungssteuerelements abzurufen.

void GetRect(LPRECT lpRect) const;

Parameter

lpRect
Verweist auf die RECT Struktur, die das Formatierungsrechteck empfängt.

Hinweise

Das Formatierungsrechteck ist das Begrenzungsrechteck des Texts, das unabhängig von der Größe des Bearbeitungssteuerelementfensters ist.

Das Formatierungsrechteck eines Mehrzeilen-Bearbeitungssteuerelements kann durch die Memberfunktionen SetRect und SetRectNP geändert werden.

Weitere Informationen finden Sie unter EM_GETRECT im Windows SDK.

Beispiel

Sehen Sie sich das Beispiel für CEdit::LimitText an.

CEdit::GetSel

Rufen Sie diese Funktion auf, um die Anfangs- und Endzeichenpositionen der aktuellen Auswahl (falls vorhanden) in einem Bearbeitungssteuerelement mithilfe des Rückgabewerts oder der Parameter abzurufen.

DWORD GetSel() const;

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

Parameter

nStartChar
Bezug auf eine ganze Zahl, die die Position des ersten Zeichens in der aktuellen Auswahl erhält.

nEndChar
Bezug auf eine ganze Zahl, die die Position des ersten nicht gewählten Zeichens über das Ende der aktuellen Markierung erhält.

Rückgabewert

Die Version, die ein DWORD zurückgibt, gibt einen Wert zurück, der die Anfangsposition im Wort mit niedriger Reihenfolge und die Position des ersten nicht gewählten Zeichens nach dem Ende der Auswahl im Wort mit hoher Reihenfolge enthält.

Hinweise

Weitere Informationen finden Sie unter EM_GETSEL im Windows SDK.

Beispiel

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

CEdit::HideBalloonTip

Blendet alle Sprechblasentippen aus, die dem aktuellen Bearbeitungssteuerelement zugeordnet sind.

BOOL HideBalloonTip();

Rückgabewert

TRUE, wenn diese Methode erfolgreich ist; andernfalls FALSE.

Hinweise

Diese Funktion sendet die EM_HIDEBALLOONTIP Nachricht, die im Windows SDK beschrieben wird.

CEdit::LimitText

Rufen Sie diese Funktion auf, um die Länge des Texts zu begrenzen, den der Benutzer in ein Bearbeitungssteuerelement eingeben kann.

void LimitText(int nChars = 0);

Parameter

nChars
Gibt die Länge (in TCHARs) des Texts an, den der Benutzer eingeben kann. Wenn dieser Parameter 0 ist, wird die Textlänge auf UINT_MAX Bytes festgelegt. Dies ist das Standardverhalten.

Hinweise

Durch Das Ändern der Textgrenze wird nur der Text eingeschränkt, den der Benutzer eingeben kann. Es hat keine Auswirkungen auf Text, der bereits im Bearbeitungssteuerelement enthalten ist, oder wirkt sich nicht auf die Länge des Texts aus, der von der SetWindowText-Memberfunktion in CWnddas Bearbeitungssteuerelement kopiert wurde. Wenn eine Anwendung die SetWindowText Funktion verwendet, um mehr Text in ein Bearbeitungssteuerelement zu setzen, als im Aufruf LimitTextangegeben ist, kann der Benutzer jeden Text innerhalb des Bearbeitungssteuerelements löschen. Die Textgrenze verhindert jedoch, dass der Benutzer den vorhandenen Text durch neuen Text ersetzt, es sei denn, das Löschen der aktuellen Markierung bewirkt, dass der Text unter die Textgrenze fällt.

Hinweis

In Win32 (Windows NT und Windows 95/98) ersetzt SetLimitText diese Funktion.

Weitere Informationen finden Sie unter EM_LIMITTEXT im Windows SDK.

Beispiel

// 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

Rufen Sie diese Funktion auf, um die Zeilennummer der Zeile abzurufen, die den angegebenen Zeichenindex enthält.

int LineFromChar(int nIndex = -1) const;

Parameter

nIndex
Enthält den nullbasierten Indexwert für das gewünschte Zeichen im Text des Bearbeitungssteuerelements oder enthält -1. Wenn nIndex -1 ist, gibt es die aktuelle Zeile an, d. h. die Zeile, die das Caret enthält.

Rückgabewert

Die nullbasierte Zeilennummer der Zeile, die den durch nIndex angegebenen Zeichenindex enthält. Wenn nIndex -1 ist, wird die Nummer der Zeile zurückgegeben, die das erste Zeichen der Auswahl enthält. Wenn keine Auswahl vorhanden ist, wird die aktuelle Zeilennummer zurückgegeben.

Hinweise

Ein Zeichenindex ist die Anzahl der Zeichen vom Anfang des Bearbeitungssteuerelements.

Diese Memberfunktion wird nur von mehrzeiligen Bearbeitungssteuerelementen verwendet.

Weitere Informationen finden Sie unter EM_LINEFROMCHAR im Windows SDK.

Beispiel

// 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

Rufen Sie diese Funktion auf, um den Zeichenindex einer Zeile innerhalb eines Mehrzeilenbearbeitungssteuerelements abzurufen.

int LineIndex(int nLine = -1) const;

Parameter

nLine
Enthält den Indexwert für die gewünschte Zeile im Text des Bearbeitungssteuerelements oder enthält -1. Wenn nLine -1 ist, gibt sie die aktuelle Zeile an, d. h. die Zeile, die das Caret enthält.

Rückgabewert

Der Zeichenindex der in nLine oder -1 angegebenen Zeile, wenn die angegebene Zeilennummer größer als die Anzahl der Zeilen im Bearbeitungssteuerelement ist.

Hinweise

Der Zeichenindex ist die Anzahl der Zeichen vom Anfang des Bearbeitungssteuerelements bis zur angegebenen Zeile.

Diese Memberfunktion wird nur von mehrzeiligen Bearbeitungssteuerelementen verarbeitet.

Weitere Informationen finden Sie unter EM_LINEINDEX im Windows SDK.

Beispiel

// 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

Ruft die Länge einer Zeile in einem Bearbeitungssteuerelement ab.

int LineLength(int nLine = -1) const;

Parameter

nLine
Der nullbasierte Index eines Zeichens in der Zeile, deren Länge abgerufen werden soll. Der Standardwert ist -1.

Rückgabewert

Bei einzeiligen Bearbeitungssteuerelementen ist der Rückgabewert die Länge des Texts im Bearbeitungssteuerelement in TCHARs.

Bei mehrzeiligen Bearbeitungssteuerelementen ist der Rückgabewert die Länge der durch den nLine-Parameter angegebenen Linie in TCHARs. Bei ANSI-Text ist die Länge die Anzahl der Bytes in der Zeile; bei Unicode-Text ist die Länge die Anzahl der Zeichen in der Zeile. Die Länge enthält nicht das Wagenrücklaufzeichen am Ende der Zeile.

Wenn der nLine-Parameter mehr als die Anzahl der Zeichen im Steuerelement ist, ist der Rückgabewert null.

Wenn der Parameter "nLine " -1 lautet, ist der Rückgabewert die Anzahl nicht ausgewählter Zeichen in den Zeilen, die ausgewählte Zeichen enthalten. Wenn sich die Markierung beispielsweise vom vierten Zeichen einer Zeile bis zum achten Zeichen vom Ende der nächsten Zeile erstreckt, lautet der Rückgabewert 10. Das heißt, drei Zeichen in der ersten Zeile und sieben Zeichen auf der nächsten.

Weitere Informationen zum TCHAR-Typ finden Sie in der Zeile "TCHAR" in der Tabelle in Windows-Datentypen.

Hinweise

Diese Methode wird von der EM_LINELENGTH Nachricht unterstützt, die im Windows SDK beschrieben wird.

Beispiel

Sehen Sie sich das Beispiel für CEdit::LineIndex an.

CEdit::LineScroll

Rufen Sie diese Funktion auf, um den Text eines mehrzeiligen Bearbeitungssteuerelements zu scrollen.

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

Parameter

nLines
Gibt die Anzahl der Zeilen an, die vertikal gescrollt werden sollen.

nChars
Gibt die Anzahl der Zeichenpositionen an, die horizontal gescrollt werden sollen. Dieser Wert wird ignoriert, wenn das Bearbeitungssteuerelement entweder das ES_RIGHT oder ES_CENTER Format aufweist.

Hinweise

Diese Memberfunktion wird nur von mehrzeiligen Bearbeitungssteuerelementen verarbeitet.

Das Bearbeitungssteuerelement führt keinen vertikalen Bildlauf nach der letzten Textzeile im Bearbeitungssteuerelement durch. Wenn die aktuelle Zeile plus der Anzahl der durch nLines angegebenen Zeilen die Gesamtanzahl der Zeilen im Bearbeitungssteuerelement überschreitet, wird der Wert so angepasst, dass die letzte Zeile des Bearbeitungssteuerelements nach oben im Bearbeitungssteuerelement verschoben wird.

LineScroll kann verwendet werden, um horizontal nach dem letzten Zeichen einer beliebigen Zeile zu scrollen.

Weitere Informationen finden Sie unter EM_LINESCROLL im Windows SDK.

Beispiel

Sehen Sie sich das Beispiel für CEdit::GetFirstVisibleLine an.

CEdit::P aste

Rufen Sie diese Funktion auf, um die Daten aus der Zwischenablage an der CEdit Einfügemarke einzufügen.

void Paste();

Hinweise

Daten werden nur eingefügt, wenn die Zwischenablage Daten im CF_TEXT Format enthält.

Weitere Informationen finden Sie unter WM_PASTE im Windows SDK.

Beispiel

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

CEdit::P osFromChar

Rufen Sie diese Funktion auf, um die Position (obere linke Ecke) eines bestimmten Zeichens in diesem CEdit Objekt abzurufen.

CPoint PosFromChar(UINT nChar) const;

Parameter

Nchar
Der nullbasierte Index des angegebenen Zeichens.

Rückgabewert

Die Koordinaten der oberen linken Ecke des durch nChar angegebenen Zeichens.

Hinweise

Das Zeichen wird angegeben, indem es seinen nullbasierten Indexwert angibt. Wenn nChar größer als der Index des letzten Zeichens in diesem CEdit Objekt ist, gibt der Rückgabewert die Koordinaten der Zeichenposition direkt über das letzte Zeichen in diesem CEdit Objekt an.

Hinweis

Diese Memberfunktion ist ab Windows 95 und Windows NT 4.0 verfügbar.

Weitere Informationen finden Sie unter EM_POSFROMCHAR im Windows SDK.

Beispiel

Sehen Sie sich das Beispiel für CEdit::LineFromChar an.

CEdit::ReplaceSel

Rufen Sie diese Funktion auf, um die aktuelle Auswahl in einem Bearbeitungssteuerelement durch den durch lpszNewText angegebenen Text zu ersetzen.

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

Parameter

lpszNewText
Verweist auf eine mit Null beendete Zeichenfolge, die den Ersetzungstext enthält.

bCanUndo
Um anzugeben, dass diese Funktion rückgängig gemacht werden kann, legen Sie den Wert dieses Parameters auf TRUE fest. Der Standardwert ist FALSE.

Hinweise

Ersetzt nur einen Teil des Texts in einem Bearbeitungssteuerelement. Wenn Sie den gesamten Text ersetzen möchten, verwenden Sie die Memberfunktion "CWnd::SetWindowText ".

Wenn keine aktuelle Auswahl vorhanden ist, wird der Ersetzungstext an der aktuellen Cursorposition eingefügt.

Weitere Informationen finden Sie unter EM_REPLACESEL im Windows SDK.

Beispiel

Sehen Sie sich das Beispiel für CEdit::LineIndex an.

CEdit::SetCueBanner

Legt den Text fest, der als Texthinweis oder Tipp in einem Bearbeitungssteuerelement angezeigt wird, wenn das Steuerelement leer ist.

BOOL SetCueBanner(LPCWSTR lpszText);

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

Parameter

lpszText
[in] Zeigen Sie auf eine Zeichenfolge, die den Hinweis enthält, der im Bearbeitungssteuerelement angezeigt werden soll.

fDrawWhenFocused
[in] Wenn FALSE, wird das Hinweisbanner nicht gezeichnet, wenn der Benutzer im Bearbeitungssteuerelement klickt und dem Steuerelement den Fokus gibt.

Bei TRUE wird das Markerbanner auch dann gezeichnet, wenn das Steuerelement den Fokus hat. Das Hinweisbanner verschwindet, wenn der Benutzer mit der Eingabe in das Steuerelement beginnt.

Der Standardwert ist FALSE.

Rückgabewert

TRUE, wenn die Methode erfolgreich ist; andernfalls FALSE.

Hinweise

Diese Methode sendet die EM_SETCUEBANNER Nachricht, die im Windows SDK beschrieben wird. Weitere Informationen finden Sie im Edit_SetCueBannerTextFocused Makro.

Beispiel

Das folgende Beispiel veranschaulicht die CEdit::SetCueBanner-Methode .

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

CEdit::SetHandle

Rufen Sie diese Funktion auf, um das Handle auf den lokalen Speicher festzulegen, der von einem mehrzeiligen Bearbeitungssteuerelement verwendet wird.

void SetHandle(HLOCAL hBuffer);

Parameter

hBuffer
Enthält ein Handle für den lokalen Speicher. Dieses Handle muss durch einen vorherigen Aufruf der LocalAlloc Windows-Funktion mithilfe des LMEM_MOVEABLE Flags erstellt worden sein. Es wird davon ausgegangen, dass der Speicher eine mit Null beendete Zeichenfolge enthält. Wenn dies nicht der Fall ist, sollte das erste Byte des zugewiesenen Speichers auf 0 festgelegt werden.

Hinweise

Das Bearbeitungssteuerelement verwendet dann diesen Puffer, um den aktuell angezeigten Text zu speichern, anstatt seinen eigenen Puffer zu zuordnen.

Diese Memberfunktion wird nur von mehrzeiligen Bearbeitungssteuerelementen verarbeitet.

Bevor eine Anwendung ein neues Speicherhandle festlegt, sollte sie die GetHandle-Memberfunktion verwenden, um das Handle zum aktuellen Speicherpuffer abzurufen und diesen Speicher mithilfe der LocalFree Windows-Funktion freizugeben.

SetHandle löscht den Rückgängig-Puffer (die CanUndo-Memberfunktion gibt dann 0 zurück) und das interne Änderungsflagge (die GetModify-Memberfunktion gibt dann 0 zurück). Das Bearbeitungssteuerelementfenster wird neu gezeichnet.

Sie können diese Memberfunktion nur dann in einem Mehrzeilen-Bearbeitungssteuerelement in einem Dialogfeld verwenden, wenn Sie das Dialogfeld mit dem DS_LOCALEDIT Formatvorlagenkennzeichnungssatz erstellt haben.

Hinweis

GetHandle funktioniert nicht mit Windows 95/98. Wenn Sie in Windows 95/98 anrufen GetHandle , wird NULL zurückgegeben. GetHandle funktioniert wie unter Windows NT, Versionen 3.51 und höher dokumentiert.

Weitere Informationen finden Sie unter EM_SETHANDLE, LocalAlloc und LocalFree im Windows SDK.

Beispiel

// 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

Hebt einen Textbereich hervor, der im aktuellen Bearbeitungssteuerelement angezeigt wird.

void SetHighlight(
    int ichStart,
    int ichEnd);

Parameter

ichStart
[in] Nullbasierter Index des ersten Zeichens im Textbereich, der hervorgehoben werden soll.

ichEnd
[in] Nullbasierter Index des letzten Zeichens im Textbereich, der hervorgehoben werden soll.

Hinweise

Diese Methode sendet die EM_SETHILITE Nachricht, die im Windows SDK beschrieben wird. Diese Methode sendet die EM_SETHILITE Nachricht, die im Windows SDK beschrieben wird. Beide SetHighlight und GetHighlight sind nur für UNICODE-Builds aktiviert.

CEdit::SetLimitText

Rufen Sie diese Memberfunktion auf, um den Textgrenzwert für dieses CEdit Objekt festzulegen.

void SetLimitText(UINT nMax);

Parameter

nMax
Der neue Textgrenzwert in Zeichen.

Hinweise

Der Textgrenzwert ist die maximale Textmenge in Zeichen, die das Bearbeitungssteuerelement akzeptieren kann.

Durch Das Ändern der Textgrenze wird nur der Text eingeschränkt, den der Benutzer eingeben kann. Es hat keine Auswirkungen auf Text, der bereits im Bearbeitungssteuerelement enthalten ist, oder wirkt sich nicht auf die Länge des Texts aus, der von der SetWindowText-Memberfunktion in CWnddas Bearbeitungssteuerelement kopiert wurde. Wenn eine Anwendung die SetWindowText Funktion verwendet, um mehr Text in ein Bearbeitungssteuerelement zu setzen, als im Aufruf LimitTextangegeben ist, kann der Benutzer jeden Text innerhalb des Bearbeitungssteuerelements löschen. Die Textgrenze verhindert jedoch, dass der Benutzer den vorhandenen Text durch neuen Text ersetzt, es sei denn, das Löschen der aktuellen Markierung bewirkt, dass der Text unter die Textgrenze fällt.

Diese Funktion ersetzt LimitText in Win32.

Weitere Informationen finden Sie unter EM_SETLIMITTEXT im Windows SDK.

Beispiel

Sehen Sie sich das Beispiel für CEditView::GetEditCtrl an.

CEdit::SetMargins

Rufen Sie diese Methode auf, um die linken und rechten Seitenränder dieses Bearbeitungssteuerelements festzulegen.

void SetMargins(
    UINT nLeft,
    UINT nRight);

Parameter

nLeft
Die Breite des neuen linken Rands in Pixel.

nRight
Die Breite des neuen rechten Rands in Pixel.

Hinweise

Hinweis

Diese Memberfunktion ist ab Windows 95 und Windows NT 4.0 verfügbar.

Weitere Informationen finden Sie unter EM_SETMARGINS im Windows SDK.

Beispiel

Sehen Sie sich das Beispiel für CEditView::GetEditCtrl an.

CEdit::SetModify

Rufen Sie diese Funktion auf, um das geänderte Kennzeichen für ein Bearbeitungssteuerelement festzulegen oder zu löschen.

void SetModify(BOOL bModified = TRUE);

Parameter

bModified
Ein Wert von TRUE gibt an, dass der Text geändert wurde, und ein Wert von FALSE gibt an, dass er nicht geändert wurde. Standardmäßig ist das geänderte Flag festgelegt.

Hinweise

Das geänderte Kennzeichen gibt an, ob der Text im Bearbeitungssteuerelement geändert wurde. Er wird automatisch festgelegt, wenn der Benutzer den Text ändert. Der Wert kann mit der GetModify-Memberfunktion abgerufen werden.

Weitere Informationen finden Sie unter EM_SETMODIFY im Windows SDK.

Beispiel

Sehen Sie sich das Beispiel für CEdit::GetModify an.

CEdit::SetPasswordChar

Rufen Sie diese Funktion auf, um ein Kennwortzeichen festzulegen oder zu entfernen, das in einem Bearbeitungssteuerelement angezeigt wird, wenn der Benutzer Text eingibt.

void SetPasswordChar(TCHAR ch);

Parameter

Ch
Gibt das Zeichen an, das anstelle des vom Benutzer eingegebenen Zeichens angezeigt werden soll. Wenn "ch " 0 ist, werden die tatsächlich vom Benutzer eingegebenen Zeichen angezeigt.

Hinweise

Wenn ein Kennwortzeichen festgelegt wird, wird dieses Zeichen für jedes Zeichen angezeigt, das der Benutzer eingibt.

Diese Memberfunktion hat keine Auswirkung auf ein mehrzeiliges Bearbeitungssteuerelement.

Wenn die SetPasswordChar Memberfunktion aufgerufen wird, CEdit werden alle sichtbaren Zeichen mithilfe des durch Ch angegebenen Zeichens neu gezeichnet.

Wenn das Bearbeitungssteuerelement mit der ES_PASSWORD Formatvorlage erstellt wird, wird das Standardkennwortzeichen auf ein Sternchen ( *) festgelegt. Diese Formatvorlage wird entfernt, wenn SetPasswordChar ch auf 0 festgelegt wird.

Weitere Informationen finden Sie unter EM_SETPASSWORDCHAR im Windows SDK.

Beispiel

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

CEdit::SetReadOnly

Ruft diese Funktion auf, um den schreibgeschützten Zustand eines Bearbeitungssteuerelements festzulegen.

BOOL SetReadOnly(BOOL bReadOnly = TRUE);

Parameter

bReadOnly
Gibt an, ob der schreibgeschützte Zustand des Bearbeitungssteuerelements festgelegt oder entfernt werden soll. Ein Wert von TRUE legt den Zustand auf schreibgeschützt fest. ein Wert von FALSE legt den Zustand auf Lese-/Schreibzugriff fest.

Rückgabewert

Nonzero, wenn der Vorgang erfolgreich ist, oder 0, wenn ein Fehler auftritt.

Hinweise

Die aktuelle Einstellung kann durch Testen des ES_READONLY Flags im Rückgabewert von CWnd::GetStyle gefunden werden.

Weitere Informationen finden Sie unter EM_SETREADONLY im Windows SDK.

Beispiel

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

CEdit::SetRect

Rufen Sie diese Funktion auf, um die Abmessungen eines Rechtecks mithilfe der angegebenen Koordinaten festzulegen.

void SetRect(LPCRECT lpRect);

Parameter

lpRect
Verweist auf die Struktur oder CRect das RECT Objekt, die die neuen Dimensionen des Formatierungsrechtecks angibt.

Hinweise

Dieses Element wird nur von mehrzeiligen Bearbeitungssteuerelementen verarbeitet.

Wird verwendet SetRect , um das Formatierungsrechteck eines Steuerelements für mehrfachzeilige Bearbeitung festzulegen. Das Formatierungsrechteck ist das Begrenzungsrechteck des Texts, das unabhängig von der Größe des Bearbeitungssteuerelementfensters ist. Wenn das Bearbeitungssteuerelement zum ersten Mal erstellt wird, entspricht das Formatierungsrechteck dem Clientbereich des Bearbeitungssteuerelementfensters. Mithilfe der SetRect Memberfunktion kann eine Anwendung das Formatierungsrechteck größer oder kleiner als das Bearbeitungssteuerelementfenster machen.

Wenn das Bearbeitungssteuerelement keine Bildlaufleiste aufweist, wird Text abgeschnitten, nicht umbrochen, wenn das Formatierungsrechteck größer als das Fenster ist. Wenn das Bearbeitungssteuerelement einen Rahmen enthält, wird das Formatierungsrechteck um die Größe des Rahmens reduziert. Wenn Sie das von der GetRect Memberfunktion zurückgegebene Rechteck anpassen, müssen Sie die Größe des Rahmens entfernen, bevor Sie das Rechteck übergeben.SetRect

Wenn SetRect der Text des Bearbeitungssteuerelements aufgerufen wird, wird der Text des Bearbeitungssteuerelements ebenfalls neu formatiert und erneut angezeigt.

Weitere Informationen finden Sie unter EM_SETRECT im Windows SDK.

Beispiel

// 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

Rufen Sie diese Funktion auf, um das Formatierungsrechteck eines Mehrfachzeilen-Bearbeitungssteuerelements festzulegen.

void SetRectNP(LPCRECT lpRect);

Parameter

lpRect
Verweist auf eine Struktur oder CRect ein RECT Objekt, die die neuen Dimensionen des Rechtecks angibt.

Hinweise

Das Formatierungsrechteck ist das Begrenzungsrechteck des Texts, das unabhängig von der Größe des Bearbeitungssteuerelementfensters ist.

SetRectNP ist identisch mit der SetRect Memberfunktion, mit der Ausnahme, dass das Bearbeitungssteuerelementfenster nicht neu gezeichnet wird.

Wenn das Bearbeitungssteuerelement zum ersten Mal erstellt wird, entspricht das Formatierungsrechteck dem Clientbereich des Bearbeitungssteuerelementfensters. Durch Aufrufen der SetRectNP Memberfunktion kann eine Anwendung das Formatierungsrechteck größer oder kleiner als das Bearbeitungssteuerelementfenster machen.

Wenn das Bearbeitungssteuerelement keine Bildlaufleiste aufweist, wird Text abgeschnitten, nicht umbrochen, wenn das Formatierungsrechteck größer als das Fenster ist.

Dieses Element wird nur von mehrzeiligen Bearbeitungssteuerelementen verarbeitet.

Weitere Informationen finden Sie unter EM_SETRECTNP im Windows SDK.

Beispiel

Sehen Sie sich das Beispiel für CEdit::SetRect an.

CEdit::SetSel

Rufen Sie diese Funktion auf, um einen Bereich von Zeichen in einem Bearbeitungssteuerelement auszuwählen.

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

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

Parameter

dwSelection
Gibt die Anfangsposition im Wort mit niedriger Reihenfolge und die Endposition im Wort mit hoher Reihenfolge an. Wenn das Wort mit niedriger Reihenfolge 0 ist und das Wort mit hoher Reihenfolge -1 lautet, wird der gesamte Text im Bearbeitungssteuerelement ausgewählt. Wenn das Wort mit niedriger Reihenfolge -1 lautet, wird eine beliebige aktuelle Auswahl entfernt.

bNoScroll
Gibt an, ob das Caret in die Ansicht gescrollt werden soll. Wenn FALSE, wird das Caret in die Ansicht gescrollt. Wenn WAHR, wird das Caret nicht in die Ansicht gescrollt.

nStartChar
Gibt die Startposition an. Wenn nStartChar 0 ist und nEndChar -1 ist, wird der gesamte Text im Bearbeitungssteuerelement ausgewählt. Wenn nStartChar -1 ist, wird eine beliebige aktuelle Auswahl entfernt.

nEndChar
Gibt die Endposition an.

Hinweise

Weitere Informationen finden Sie unter EM_SETSEL im Windows SDK.

Beispiel

Sehen Sie sich das Beispiel für CEdit::GetSel an.

CEdit::SetTabStops

Rufen Sie diese Funktion auf, um die Tabstopps in einem mehrzeiligen Bearbeitungssteuerelement festzulegen.

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

BOOL SetTabStops(
    int nTabStops,
    LPINT rgTabStops);

Parameter

cxEachStop
Gibt an, dass Tabstopps bei allen CxEachStop-Dialogfeldern festgelegt werden sollen.

nTabStops
Gibt die Anzahl der Tabstopps an, die in rgTabStops enthalten sind. Diese Zahl muss größer als 1 sein.

rgTabStops
Verweist auf ein Array von nicht signierten ganzen Zahlen, die die Tabstopps in Dialogfeldeinheiten angeben. Eine Dialogeinheit ist ein horizontaler oder vertikaler Abstand. Eine horizontale Dialogeinheit ist gleich einem Vierten der aktuellen Dialogbasisbreiteneinheit, und 1 vertikale Dialogeinheit entspricht einem Achtel der aktuellen Dialogbasishöheneinheit. Die Dialogbasiseinheiten werden basierend auf der Höhe und Breite der aktuellen Systemschriftart berechnet. Die GetDialogBaseUnits Windows-Funktion gibt die aktuellen Dialogbasiseinheiten in Pixeln zurück.

Rückgabewert

Nonzero, wenn die Registerkarten festgelegt wurden; andernfalls 0.

Hinweise

Wenn Text in ein mehrzeiliges Bearbeitungssteuerelement kopiert wird, bewirkt jedes Tabstoppzeichen im Text, dass bis zum nächsten Tabstopp Platz generiert wird.

Um Tabstopps auf die Standardgröße von 32 Dialogeinheiten festzulegen, rufen Sie die parameterlose Version dieser Memberfunktion auf. Um Tabstopps auf eine andere Größe als 32 festzulegen, rufen Sie die Version mit dem parameter cxEachStop auf. Wenn Sie Tabstopps auf ein Array von Größen festlegen möchten, verwenden Sie die Version mit zwei Parametern.

Diese Memberfunktion wird nur von mehrzeiligen Bearbeitungssteuerelementen verarbeitet.

SetTabStops zeichnet das Bearbeitungsfenster nicht automatisch neu. Wenn Sie die Tabstopps für Text ändern, der sich bereits im Bearbeitungssteuerelement befindet, rufen Sie CWnd::InvalidateRect auf, um das Bearbeitungsfenster neu zu zeichnen.

Weitere Informationen finden Sie unter EM_SETTABSTOPS und GetDialogBaseUnits im Windows SDK.

Beispiel

Sehen Sie sich das Beispiel für CEditView::SetTabStops an.

CEdit::ShowBalloonTip

Zeigt einen Sprechblasentipp an, der dem aktuellen Bearbeitungssteuerelement zugeordnet ist.

BOOL ShowBalloonTip(PEDITBALLOONTIP pEditBalloonTip);

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

Parameter

pEditBalloonTip
[in] Zeigen Sie auf eine EDITBALLOONTIP-Struktur , die die Sprechblasenspitze beschreibt.

lpszTitle
[in] Zeigen Sie auf eine Unicode-Zeichenfolge, die den Titel der Sprechblasenspitze enthält.

lpszText
[in] Zeigen Sie auf eine Unicode-Zeichenfolge, die den Sprechblasentipptext enthält.

ttiIcon
[in] Ein INT , das den Typ des Symbols angibt, das der Sprechblasenspitze zugeordnet werden soll. Der Standardwert ist TTI_NONE. Weitere Informationen finden Sie im ttiIcon Element der EDITBALLOONTIP-Struktur .

Rückgabewert

TRUE, wenn diese Methode erfolgreich ist; andernfalls FALSE.

Hinweise

Diese Funktion sendet die EM_SHOWBALLOONTIP Nachricht, die im Windows SDK beschrieben wird. Weitere Informationen finden Sie im Edit_ShowBalloonTip-Makro .

Beispiel

Im ersten Codebeispiel wird eine Variable definiert, m_ceditdie für den Zugriff auf das aktuelle Bearbeitungssteuerelement verwendet wird. Diese Variable wird im nächsten Beispiel verwendet.

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

Im nächsten Codebeispiel wird eine Sprechblaseninfo für ein Bearbeitungssteuerelement angezeigt. Die CEdit::ShowBalloonTip-Methode gibt einen Titel- und Sprechblasentipptext an.

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

CEdit::Undo

Rufen Sie diese Funktion auf, um den letzten Bearbeitungssteuerungsvorgang rückgängig zu machen.

BOOL Undo();

Rückgabewert

Bei einem einzeiligen Bearbeitungssteuerelement ist der Rückgabewert immer ungleich Null. Bei einem Mehrzeilen-Bearbeitungssteuerelement ist der Rückgabewert ungleich Null, wenn der Rückgängig-Vorgang erfolgreich ist, oder 0, wenn der Rückgängig-Vorgang fehlschlägt.

Hinweise

Ein Rückgängig-Vorgang kann auch rückgängig gemacht werden. Sie können beispielsweise gelöschten Text mit dem ersten Aufruf wiederherstellen.Undo Solange kein Bearbeitungsvorgang dazwischen besteht, können Sie den Text erneut mit einem zweiten Aufruf Undoentfernen.

Weitere Informationen finden Sie unter EM_UNDO im Windows SDK.

Beispiel

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

Siehe auch

MFC-Beispiel CALCDRIV
MFC-Beispiel-CMNCTRL2
CWnd-Klasse
Hierarchiediagramm
CWnd-Klasse
CButton-Klasse
CComboBox-Klasse
CListBox-Klasse
CScrollBar-Klasse
CStatic-Klasse
CDialog-Klasse