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 CEdit ab. |
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 CEdit fest. |
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 CEdit
Sie unter "Steuerelemente".
Vererbungshierarchie
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 OnCreate
Sie 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.
FmtLines
wirkt 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 geblieben sind.
Hinweise
Windows verwaltet 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 die Standardeinstellung.
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 CWnd
das Bearbeitungssteuerelement kopiert wurde. Wenn eine Anwendung die SetWindowText
Funktion verwendet, um mehr Text in ein Bearbeitungssteuerelement zu setzen, als im Aufruf LimitText
angegeben 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 FALSCH.
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 FALSCH.
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 CWnd
das Bearbeitungssteuerelement kopiert wurde. Wenn eine Anwendung die SetWindowText
Funktion verwendet, um mehr Text in ein Bearbeitungssteuerelement zu setzen, als im Aufruf LimitText
angegeben 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_cedit
die 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 Undo
entfernen.
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