Share via


Klasse CMFCMaskedEdit

Opmerking

De Microsoft Foundation Classes-bibliotheek (MFC) wordt nog steeds ondersteund. We voegen echter geen functies meer toe of werken de documentatie bij.

De CMFCMaskedEdit klasse ondersteunt een gemaskeerd besturingselement voor bewerken, waarmee gebruikersinvoer wordt gevalideerd op basis van een masker en de gevalideerde resultaten worden weergegeven op basis van een sjabloon.

Syntaxis

class CMFCMaskedEdit : public CEdit

Leden

Openbare constructors

Naam Description
CMFCMaskedEdit::CMFCMaskedEdit Standaardconstructor.
CMFCMaskedEdit::~CMFCMaskedEdit Destructor.

Openbare methoden

Naam Description
CMFCMaskedEdit::D isableMask Hiermee schakelt u het valideren van gebruikersinvoer uit.
CMFCMaskedEdit::EnableGetMaskedCharsOnly Hiermee geeft u op of de GetWindowText methode alleen gemaskeerde tekens ophaalt.
CMFCMaskedEdit::EnableMask Initialiseert het gemaskeerde besturingselement voor bewerken.
CMFCMaskedEdit::EnableSelectByGroup Hiermee geeft u op of het gemaskeerde besturingselement bepaalde groepen gebruikersinvoer of alle gebruikersinvoer selecteert.
CMFCMaskedEdit::EnableSetMaskedCharsOnly Hiermee geeft u op of de tekst wordt gevalideerd voor alleen gemaskeerde tekens of voor het hele masker.
CMFCMaskedEdit::GetThisClass Wordt door het framework gebruikt om een aanwijzer te verkrijgen naar het CRuntimeClass-object dat is gekoppeld aan dit klassetype.
CMFCMaskedEdit::GetWindowText Hiermee haalt u gevalideerde tekst op uit het gemaskeerde bewerkingsbesturingselement.
CMFCMaskedEdit::SetValidChars Hiermee geeft u een tekenreeks met geldige tekens op die de gebruiker kan invoeren.
CMFCMaskedEdit::SetWindowText Geeft een prompt weer in het besturingselement voor gemaskeerde bewerking.

Beveiligde methoden

Naam Description
CMFCMaskedEdit::IsMaskedChar Aangeroepen door het framework om het opgegeven teken te valideren op basis van het bijbehorende maskerteken.

Opmerkingen

Voer de volgende stappen uit om het CMFCMaskedEdit besturingselement in uw toepassing te gebruiken:

  1. Sluit een CMFCMaskedEdit object in uw vensterklasse in.

  2. Roep de CMFCMaskedEdit::EnableMask-methode aan om het masker op te geven.

  3. Roep de CMFCMaskedEdit::SetValidChars-methode aan om de lijst met geldige tekens op te geven.

  4. Roep de methode CMFCMaskedEdit::SetWindowText aan om de standaardtekst voor het gemaskeerde besturingselement voor bewerken op te geven.

  5. Roep de methode CMFCMaskedEdit::GetWindowText aan om de gevalideerde tekst op te halen.

Als u geen of meer methoden aanroept om het masker, geldige tekens en standaardtekst te initialiseren, gedraagt het gemaskeerde besturingselement zich net zoals het standaardbesturingselement voor bewerken gedraagt.

Example

In het volgende voorbeeld ziet u hoe u een masker (bijvoorbeeld een telefoonnummer) instelt met behulp van de EnableMask methode voor het maken van het masker voor het besturingselement voor gemaskeerde bewerking, de methode voor het SetValidChars opgeven van een tekenreeks met geldige tekens die de gebruiker kan invoeren en SetWindowText een methode om een prompt weer te geven in het gemaskeerde bewerkingsbesturingselement. Dit voorbeeld maakt deel uit van het voorbeeld Nieuwe besturingselementen.

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);
}

Overnamehiërarchie

CObject

CCmdTarget-

CWnd

CEdit

CMFCMaskedEdit

Requirements

Header: afxmaskededit.h

CMFCMaskedEdit::D isableMask

Hiermee schakelt u het valideren van gebruikersinvoer uit.

void DisableMask();

Opmerkingen

Als validatie van gebruikersinvoer is uitgeschakeld, gedraagt het gemaskeerde bewerkingsbesturingselement zich als het standaardbesturingselement voor bewerken.

CMFCMaskedEdit::EnableGetMaskedCharsOnly

Hiermee geeft u op of de GetWindowText methode alleen gemaskeerde tekens ophaalt.

void EnableGetMaskedCharsOnly(BOOL bEnable=TRUE);

Parameterwaarden

bEnable
[in] TRUE om op te geven dat de CMFCMaskedEdit::GetWindowText-methode alleen gemaskeerde tekens ophaalt; FALSE om op te geven dat de methode de hele tekst ophaalt. De standaardwaarde is WAAR.

Opmerkingen

Gebruik deze methode om gemaskeerde tekens op te halen. Maak vervolgens een gemaskeerd bewerkingsbesturingselement dat overeenkomt met het telefoonnummer, zoals (425) 555-0187. Als u de GetWindowText methode aanroept, wordt '4255550187' geretourneerd. Als u het ophalen van gemaskeerde tekens uitschakelt, retourneert de GetWindowText methode de tekst die wordt weergegeven in het besturingselement bewerken, bijvoorbeeld '(425) 555-0187'.

CMFCMaskedEdit::EnableMask

Initialiseert het gemaskeerde besturingselement voor bewerken.

void EnableMask(
    LPCTSTR lpszMask,
    LPCTSTR lpszInputTemplate,
    TCHAR chMaskInputTemplate=_T('_'),
    LPCTSTR lpszValid=NULL);

Parameterwaarden

lpszMask
[in] Een maskertekenreeks die het type teken aangeeft dat op elke positie in de gebruikersinvoer kan worden weergegeven. De lengte van de parametertekenreeksen lpszInputTemplate en lpszMask moeten hetzelfde zijn. Zie de sectie Opmerkingen voor meer informatie over maskertekens.

lpszInputTemplate
[in] Een maskersjabloontekenreeks die de letterlijke tekens aangeeft die op elke positie in de gebruikersinvoer kunnen worden weergegeven. Gebruik het onderstrepingsteken ('_') als tijdelijke aanduiding voor tekens. De lengte van de parametertekenreeksen lpszInputTemplate en lpszMask moeten hetzelfde zijn.

chMaskInputTemplate
[in] Een standaardteken dat door het framework wordt vervangen door elk ongeldig teken in de gebruikersinvoer. De standaardwaarde van deze parameter is onderstrepingsteken ('_').

lpszValid
[in] Een tekenreeks die een set geldige tekens bevat. NULL geeft aan dat alle tekens geldig zijn. De standaardwaarde van deze parameter is NULL.

Opmerkingen

Gebruik deze methode om het masker voor het gemaskeerde bewerkingsbesturingselement te maken. Leid een klasse af van de CMFCMaskedEdit klasse en overschrijf de METHODE CMFCMaskedEdit::IsMaskedChar om uw eigen code te gebruiken voor aangepaste maskerverwerking.

De volgende tabel bevat de standaardmaskertekens:

Maskerteken Definition
D Cijfer.
d Cijfer of spatie.
+ Plus ('+'), min ('-'), of spatie.
C Alfabetisch teken.
c Alfabetisch teken of spatie.
A Alfanumeriek teken.
a Alfanumeriek teken of spatie.
* Een afdrukbaar teken.

CMFCMaskedEdit::EnableSelectByGroup

Hiermee geeft u op of de gebruiker met het besturingselement voor gemaskeerde bewerking bepaalde groepsinvoer of alle invoer kan selecteren.

void EnableSelectByGroup(BOOL bEnable=TRUE);

Parameterwaarden

bEnable
[in] WAAR om alleen groepen te selecteren; ONWAAR om de hele tekst te selecteren. De standaardwaarde is WAAR.

Opmerkingen

Gebruik deze functie om op te geven of met het besturingselement voor gemaskeerde bewerking een gebruiker kan selecteren per groep of de hele tekst.

Selectie per groep is standaard ingeschakeld. In dit geval kan de gebruiker alleen doorlopende groepen geldige tekens selecteren.

U kunt bijvoorbeeld het volgende besturingselement voor gemaskeerde bewerking gebruiken om een telefoonnummer te valideren:

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

Als selectie per groep is ingeschakeld, kan de gebruiker alleen de tekenreeksgroepen 425, 555 of 0187 ophalen. Als groepsselectie is uitgeschakeld, kan de gebruiker de hele tekst van het telefoonnummer ophalen: "(425) 555-0187".

CMFCMaskedEdit::EnableSetMaskedCharsOnly

Hiermee geeft u op of de tekst alleen wordt gevalideerd voor de gemaskeerde tekens of voor het hele masker.

void EnableSetMaskedCharsOnly(BOOL bEnable=TRUE);

Parameterwaarden

bEnable
[in] WAAR om de invoer van de gebruiker te valideren op basis van alleen gemaskeerde tekens; FALSE om te valideren op basis van het hele masker. De standaardwaarde is WAAR.

CMFCMaskedEdit::GetWindowText

Hiermee haalt u gevalideerde tekst op uit het gemaskeerde bewerkingsbesturingselement.

int GetWindowText(
    LPTSTR lpszStringBuf,
    int nMaxCount) const;

void GetWindowText(CString& rstrString) const;

Parameterwaarden

lpszStringBuf
[uit] Een aanwijzer naar een buffer die de tekst van het besturingselement bewerken ontvangt.

nMaxCount
[in] Het maximum aantal tekens dat moet worden ontvangen.

rstrString
[uit] Een verwijzing naar het tekenreeksobject dat de tekst van het besturingselement bewerken ontvangt.

Retourwaarde

De eerste overbelasting van de methode retourneert het aantal bytes van de tekenreeks die wordt gekopieerd naar de parameterbuffer lpszStringBuf ; 0 als het besturingselement voor gemaskeerde bewerking geen tekst bevat.

Opmerkingen

Met deze methode wordt de tekst van het gemaskeerde bewerkingsbesturingselement gekopieerd naar de buffer lpszStringBuf of de rstrString-tekenreeks .

Met deze methode wordt CWnd::GetWindowText opnieuw gedefinieerd.

CMFCMaskedEdit::IsMaskedChar

Aangeroepen door het framework om het opgegeven teken te valideren op basis van het bijbehorende maskerteken.

virtual BOOL IsMaskedChar(
    TCHAR chChar,
    TCHAR chMaskChar) const;

Parameterwaarden

chChar
[in] Het teken dat moet worden gevalideerd.

chMaskChar
[in] Het bijbehorende teken uit de maskertekenreeks.

Retourwaarde

WAAR als de parameter chChar het type teken is dat is toegestaan door de parameter chMaskChar ; anders, ONWAAR.

Opmerkingen

Overschrijf deze methode om zelf invoertekens te valideren. Zie de methode CMFCMaskedEdit::EnableMaskk voor meer informatie over maskertekens.

CMFCMaskedEdit::SetValidChars

Hiermee geeft u een tekenreeks met geldige tekens op die de gebruiker kan invoeren.

void SetValidChars(LPCTSTR lpszValid=NULL);

Parameterwaarden

lpszValid
[in] Een tekenreeks die de set geldige invoertekens bevat. NULL betekent dat alle tekens geldig zijn. De standaardwaarde van deze parameter is NULL.

Opmerkingen

Gebruik deze methode om een lijst met geldige tekens te definiëren. Als een invoerteken zich niet in deze lijst bevindt, wordt het gemaskeerde bewerkingsbesturingselement niet geaccepteerd.

In het volgende codevoorbeeld worden alleen hexadecimale getallen geaccepteerd.

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

Geeft een prompt weer in het besturingselement voor gemaskeerde bewerking.

void SetWindowText(LPCTSTR lpszString);

Parameterwaarden

lpszString
[in] Verwijst naar een door null beëindigde tekenreeks die wordt gebruikt als een prompt.

Opmerkingen

Met deze methode stelt u de besturingselementtekst in.

Met deze methode wordt CWnd::SetWindowText opnieuw gedefinieerd.

Zie ook

Hiërarchiegrafiek
Klassen
CEdit-klasse