Freigeben über


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:

  1. Betten Sie ein CMFCMaskedEdit Objekt in Ihre Fensterklasse ein.

  2. Rufen Sie die CMFCMaskedEdit::EnableMask-Methode auf, um das Maskenformat anzugeben.

  3. Rufen Sie die CMFCMaskedEdit::SetValidChars-Methode auf, um die Liste der gültigen Zeichen anzugeben.

  4. Rufen Sie die CMFCMaskedEdit::SetWindowText-Methode auf, um den Standardtext für das maskierte Bearbeitungssteuerelement anzugeben.

  5. 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

CObject

CCmdTarget

CWnd

CEdit

CMFCMaskedEdit

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.

Siehe auch

Hierarchiediagramm
Klassen
CEdit-Klasse