CMFCMaskedEdit-Klasse
Die CMFCMaskedEdit
Klasse unterstützt ein maskiertes Bearbeitungssteuerelement, das die Benutzereingabe anhand einer Maske überprüft und die überprüften Ergebnisse entsprechend einer Vorlage anzeigt.
Syntax
class CMFCMaskedEdit : public CEdit
Member
Öffentliche Konstruktoren
Name | Beschreibung |
---|---|
CMFCMaskedEdit::CMFCMaskedEdit |
Der Standardkonstruktor. |
CMFCMaskedEdit::~CMFCMaskedEdit |
Destruktor. |
Öffentliche Methoden
Name | Beschreibung |
---|---|
CMFCMaskedEdit::D isableMask | Deaktiviert die Überprüfung der Benutzereingabe. |
CMFCMaskedEdit::EnableGetMaskedCharsOnly | Gibt an, ob die GetWindowText Methode nur maskierte Zeichen abruft. |
CMFCMaskedEdit::EnableMask | Initialisiert das maskierte Bearbeitungssteuerelement. |
CMFCMaskedEdit::EnableSelectByGroup | Gibt an, ob das maskierte Bearbeitungssteuerelement bestimmte Benutzereingabegruppen oder alle Benutzereingaben auswählt. |
CMFCMaskedEdit::EnableSetMaskedCharsOnly | Gibt an, ob der Text nur für maskierte Zeichen oder für das gesamte Format überprüft wird. |
CMFCMaskedEdit::GetThisClass |
Wird vom Framework verwendet, um einen Zeiger auf das CRuntimeClass -Objekt abzurufen, das diesem Klassentyp zugeordnet ist. |
CMFCMaskedEdit::GetWindowText | Ruft überprüften Text aus dem maskierten Bearbeitungssteuerelement ab. |
CMFCMaskedEdit::SetValidChars | Gibt eine Zeichenfolge mit gültigen Zeichen an, die der Benutzer eingeben kann. |
CMFCMaskedEdit::SetWindowText | Zeigt eine Eingabeaufforderung im maskierten Bearbeitungssteuerelement an. |
Geschützte Methoden
Name | Beschreibung |
---|---|
CMFCMaskedEdit::IsMaskedChar | Wird vom Framework aufgerufen, um das angegebene Zeichen anhand des entsprechenden Maskenzeichens zu überprüfen. |
Hinweise
Führen Sie die folgenden Schritte aus, um das CMFCMaskedEdit
Steuerelement in Ihrer Anwendung zu verwenden:
Betten Sie ein
CMFCMaskedEdit
Objekt in Ihre Fensterklasse ein.Rufen Sie die CMFCMaskedEdit::EnableMask-Methode auf, um das Maskenformat anzugeben.
Rufen Sie die CMFCMaskedEdit::SetValidChars-Methode auf, um die Liste der gültigen Zeichen anzugeben.
Rufen Sie die CMFCMaskedEdit::SetWindowText-Methode auf, um den Standardtext für das maskierte Bearbeitungssteuerelement anzugeben.
Rufen Sie die CMFCMaskedEdit::GetWindowText-Methode auf, um den überprüften Text abzurufen.
Wenn Sie keine oder mehrere Methoden zum Initialisieren der Maske, gültiger Zeichen und Standardtext aufrufen, verhält sich das maskierte Bearbeitungssteuerelement genauso wie das Standardmäßige Bearbeitungssteuerelement.
Beispiel
Im folgenden Beispiel wird veranschaulicht, wie Eine Maske (z. B. eine Telefonnummer) mithilfe der EnableMask
Methode zum Erstellen der Maske für das maskierte Bearbeitungssteuerelement, die SetValidChars
Methode zum Angeben einer Zeichenfolge gültiger Zeichen, die der Benutzer eingeben kann, und SetWindowText
die Methode zum Anzeigen einer Eingabeaufforderung im maskierten Bearbeitungssteuerelement. Dieses Beispiel ist Teil des Beispiels "Neue Steuerelemente".
CMFCMaskedEdit m_wndMaskEdit1;
CMFCMaskedEdit m_wndMaskEdit2;
CMFCMaskedEdit m_wndMaskEdit3;
CMFCMaskedEdit m_wndMaskEdit4;
CMFCMaskedEdit m_wndMaskEdit5;
CString m_strValue1;
CString m_strValue2;
CString m_strValue3;
CString m_strValue4;
CString m_strValue5;
BOOL CPage4::OnInitDialog()
{
CMFCPropertyPage::OnInitDialog();
// Mask 1: phone number
m_wndMaskEdit1.EnableMask(_T(" ddd ddd dddd"), // The mask string
_T("(___) ___-____"), // Literal, "_" char = character entry
_T(' ')); // Default char
m_wndMaskEdit1.SetValidChars(NULL); // Valid string characters
m_wndMaskEdit1.SetWindowText(_T("(123) 123-1212"));
// Mask 2: State, Zip Code
m_wndMaskEdit2.EnableMask(_T(" cc ddddd-dddd"), // The mask string
_T("State: __, Zip: _____-____"), // Literal, "_" char = character entry
_T(' ')); // Backspace replace char
m_wndMaskEdit2.SetValidChars(NULL); // Valid string characters
m_wndMaskEdit2.SetWindowText(_T("State: NY, Zip: 12345-6789"));
// Mask 3: serial code
m_wndMaskEdit3.EnableMask(_T(" AAAA AAAA AAAA AAAA"), // The mask string
_T("S/N: ____-____-____-____"), // Literal, "_" char = character entry
_T('_')); // Backspace replace char
m_wndMaskEdit3.SetValidChars(NULL); // Valid string characters
m_wndMaskEdit3.SetWindowText(_T("S/N: FPR5-5678-1234-8765"));
// Mask 4: 0xFFFF
m_wndMaskEdit4.EnableMask(_T(" AAAA"), // The mask string
_T("0x____"), // Literal, "_" char = character entry
_T('_')); // Backspace replace char
m_wndMaskEdit4.SetValidChars(_T("1234567890ABCDEFabcdef")); // Valid string characters
m_wndMaskEdit4.SetWindowText(_T("0x01AF"));
// Mask 5: digits only
m_wndMaskEdit5.DisableMask(); // Don't use the mask
m_wndMaskEdit5.SetValidChars(_T("1234567890")); // Valid string characters
m_wndMaskEdit5.SetWindowText(_T("1234567890"));
return TRUE; // return TRUE unless you set the focus to a control
}
void CPage4::OnButtonGet()
{
m_wndMaskEdit1.GetWindowText(m_strValue1);
m_wndMaskEdit2.GetWindowText(m_strValue2);
m_wndMaskEdit3.GetWindowText(m_strValue3);
m_wndMaskEdit4.GetWindowText(m_strValue4);
m_wndMaskEdit5.GetWindowText(m_strValue5);
UpdateData(FALSE);
}
Vererbungshierarchie
Anforderungen
Kopfzeile: afxmaskededit.h
CMFCMaskedEdit::D isableMask
Deaktiviert die Überprüfung der Benutzereingabe.
void DisableMask();
Hinweise
Wenn die Benutzereingabeüberprüfung deaktiviert ist, verhält sich das maskierte Bearbeitungssteuerelement wie das Standardmäßige Bearbeitungssteuerelement.
CMFCMaskedEdit::EnableGetMaskedCharsOnly
Gibt an, ob die GetWindowText
Methode nur maskierte Zeichen abruft.
void EnableGetMaskedCharsOnly(BOOL bEnable=TRUE);
Parameter
bEnable
[in] TRUE, um anzugeben, dass die CMFCMaskedEdit::GetWindowText-Methode nur maskierte Zeichen abruft; FALSE, um anzugeben, dass die Methode den gesamten Text abruft. Der Standardwert ist TRUE.
Hinweise
Verwenden Sie diese Methode, um maskierte Zeichen abzurufen. Erstellen Sie dann ein maskiertes Bearbeitungssteuerelement, das der Telefonnummer entspricht, z. B. (425) 555-0187. Wenn Sie die GetWindowText
Methode aufrufen, wird "4255550187" zurückgegeben. Wenn Sie das Abrufen maskierter Zeichen deaktivieren, gibt die GetWindowText
Methode den Text zurück, der im Bearbeitungssteuerelement angezeigt wird, z. B. "(425) 555-0187".
CMFCMaskedEdit::EnableMask
Initialisiert das maskierte Bearbeitungssteuerelement.
void EnableMask(
LPCTSTR lpszMask,
LPCTSTR lpszInputTemplate,
TCHAR chMaskInputTemplate=_T('_'),
LPCTSTR lpszValid=NULL);
Parameter
lpszMask
[in] Eine Maskenzeichenfolge, die den Typ des Zeichens angibt, der an jeder Position in der Benutzereingabe angezeigt werden kann. Die Länge der parameterzeichenfolgen lpszInputTemplate und lpszMask muss identisch sein. Weitere Details zu Maskenzeichen finden Sie im Abschnitt "Hinweise".
lpszInputTemplate
[in] Eine Maskenvorlagenzeichenfolge, die die Literalzeichen angibt, die an jeder Position in der Benutzereingabe angezeigt werden können. Verwenden Sie das Unterstrichzeichen ('_') als Platzhalter für Zeichen. Die Länge der parameterzeichenfolgen lpszInputTemplate und lpszMask muss identisch sein.
chMaskInputTemplate
[in] Ein Standardzeichen, das das Framework für jedes ungültige Zeichen in der Benutzereingabe ersetzt. Der Standardwert dieses Parameters ist Unterstrich ('_').
lpszValid
[in] Eine Zeichenfolge, die einen Satz gültiger Zeichen enthält. NULL gibt an, dass alle Zeichen gültig sind. Der Standardwert dieses Parameters ist NULL.
Hinweise
Verwenden Sie diese Methode, um die Maske für das maskierte Bearbeitungssteuerelement zu erstellen. Leiten Sie eine Klasse von der CMFCMaskedEdit
Klasse ab und überschreiben Sie die CMFCMaskedEdit::IsMaskedChar-Methode , um Ihren eigenen Code für die benutzerdefinierte Maskenverarbeitung zu verwenden.
In der folgenden Tabelle sind die Standardformatzeichen aufgeführt:
Maskenzeichen | Definition |
---|---|
D | Ziffer. |
d | Ziffer oder Leerzeichen. |
+ | Pluszeichen ('+'), Minuszeichen ('-' oder Leerzeichen). |
K | Alphazeichen. |
c | Alphabetisches Zeichen oder Leerzeichen. |
A | Alphanumerisches Zeichen. |
a | Alphanumerisches Zeichen oder Leerzeichen. |
* | Ein druckbares Zeichen. |
CMFCMaskedEdit::EnableSelectByGroup
Gibt an, ob das maskierte Bearbeitungssteuerelement dem Benutzer die Auswahl bestimmter Gruppeneingaben oder aller Eingaben ermöglicht.
void EnableSelectByGroup(BOOL bEnable=TRUE);
Parameter
bEnable
[in] TRUE, um nur Gruppen auszuwählen; FALSE, um den gesamten Text zu markieren. Der Standardwert ist TRUE.
Hinweise
Verwenden Sie diese Funktion, um anzugeben, ob das maskierte Bearbeitungssteuerelement es einem Benutzer ermöglicht, nach Gruppe oder ganzem Text auszuwählen.
Standardmäßig ist die Auswahl nach Gruppe aktiviert. In diesem Fall kann der Benutzer nur fortlaufende Gruppen gültiger Zeichen auswählen.
Sie können beispielsweise das folgende maskierte Bearbeitungssteuerelement verwenden, um eine Telefonnummer zu überprüfen:
m_wndMaskEdit.EnableMask(
_T(" ddd ddd dddd"), // Mask string
_T("(___) ___-____"), // Template string
_T(' ')); // Default char
m_wndMaskEdit.SetValidChars(NULL); // All characters are valid.
m_wndMaskEdit.SetWindowText(_T("(425) 555-0187")); // Prompt
Wenn die Auswahl nach Gruppe aktiviert ist, kann der Benutzer nur die Zeichenfolgengruppen "425", "555" oder "0187" abrufen. Wenn die Gruppenauswahl deaktiviert ist, kann der Benutzer den gesamten Text der Telefonnummer "(425) 555-0187" abrufen.
CMFCMaskedEdit::EnableSetMaskedCharsOnly
Gibt an, ob der Text nur für die maskierten Zeichen oder für das gesamte Format überprüft wird.
void EnableSetMaskedCharsOnly(BOOL bEnable=TRUE);
Parameter
bEnable
[in] TRUE, um die Benutzereingabe auf nur maskierte Zeichen zu überprüfen; FALSE, um für die gesamte Maske zu überprüfen. Der Standardwert ist TRUE.
CMFCMaskedEdit::GetWindowText
Ruft überprüften Text aus dem maskierten Bearbeitungssteuerelement ab.
int GetWindowText(
LPTSTR lpszStringBuf,
int nMaxCount) const;
void GetWindowText(CString& rstrString) const;
Parameter
lpszStringBuf
[out] Ein Zeiger auf einen Puffer, der den Text vom Bearbeitungssteuerelement empfängt.
nMaxCount
[in] Die maximale Anzahl von Zeichen, die empfangen werden sollen.
rstrString
[out] Ein Verweis auf das Zeichenfolgenobjekt, das den Text vom Bearbeitungssteuerelement empfängt.
Rückgabewert
Die erste Methodenüberladung gibt die Anzahl der Bytes der Zeichenfolge zurück, die in den lpszStringBuf-Parameterpuffer kopiert wird; 0, wenn das maskierte Bearbeitungssteuerelement keinen Text aufweist.
Hinweise
Diese Methode kopiert den Text aus dem maskierten Bearbeitungssteuerelement in den lpszStringBuf-Puffer oder die rstrString-Zeichenfolge .
Diese Methode definiert CWnd::GetWindowText neu.
CMFCMaskedEdit::IsMaskedChar
Wird vom Framework aufgerufen, um das angegebene Zeichen anhand des entsprechenden Maskenzeichens zu überprüfen.
virtual BOOL IsMaskedChar(
TCHAR chChar,
TCHAR chMaskChar) const;
Parameter
chChar
[in] Das zu überprüfende Zeichen.
chMaskChar
[in] Das entsprechende Zeichen aus der Maskenzeichenfolge.
Rückgabewert
TRUE, wenn der chChar-Parameter der Typ des Zeichens ist, der vom chMaskChar-Parameter zulässig ist; andernfalls FALSE.
Hinweise
Überschreiben Sie diese Methode, um Eingabezeichen selbst zu überprüfen. Weitere Informationen zu Maskenzeichen finden Sie unter der CMFCMaskedEdit::EnableMask-Methode .
CMFCMaskedEdit::SetValidChars
Gibt eine Zeichenfolge mit gültigen Zeichen an, die der Benutzer eingeben kann.
void SetValidChars(LPCTSTR lpszValid=NULL);
Parameter
lpszValid
[in] Eine Zeichenfolge, die den Satz gültiger Eingabezeichen enthält. NULL bedeutet, dass alle Zeichen gültig sind. Der Standardwert dieses Parameters ist NULL.
Hinweise
Verwenden Sie diese Methode, um eine Liste gültiger Zeichen zu definieren. Wenn sich ein Eingabezeichen nicht in dieser Liste befindet, akzeptiert das maskierte Bearbeitungssteuerelement es nicht.
Im folgenden Codebeispiel werden nur hexadezimale Zahlen akzeptiert.
//Mask: 0xFFFF
m_wndMaskEdit.EnableMask(
_T(" AAAA"), // The mask string.
_T("0x____"), // The literal template string.
_T('_')); // The default character that
// replaces the backspace character.
// Valid string characters
m_wndMaskEdit.SetValidChars(_T("1234567890ABCDEFabcdef"));m_wndMaskEdit.SetWindowText(_T("0x01AF"));
CMFCMaskedEdit::SetWindowText
Zeigt eine Eingabeaufforderung im maskierten Bearbeitungssteuerelement an.
void SetWindowText(LPCTSTR lpszString);
Parameter
lpszString
[in] Verweist auf eine mit Null beendete Zeichenfolge, die als Eingabeaufforderung verwendet wird.
Hinweise
Mit dieser Methode wird der Steuerelementtext festgelegt.
Diese Methode definiert CWnd::SetWindowText neu.