Megosztás a következőn keresztül:


CMFCMaskedEdit osztály

Megjegyzés:

A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.

Az CMFCMaskedEdit osztály támogatja a maszkolt szerkesztési vezérlőt, amely ellenőrzi a felhasználói bemenetet egy maszkon, és egy sablon alapján jeleníti meg az ellenőrzött eredményeket.

Szemantika

class CMFCMaskedEdit : public CEdit

Tagok

Nyilvános konstruktorok

Név Description
CMFCMaskedEdit::CMFCMaskedEdit Alapértelmezett konstruktor.
CMFCMaskedEdit::~CMFCMaskedEdit Destruktor.

Nyilvános metódusok

Név Description
CMFCMaskedEdit::D isableMask Letiltja a felhasználói bevitel érvényesítését.
CMFCMaskedEdit::EnableGetMaskedCharsOnly Megadja, hogy a GetWindowText metódus csak maszkolt karaktereket kér-e le.
CMFCMaskedEdit::EnableMask Inicializálja a maszkolt szerkesztési vezérlőt.
CMFCMaskedEdit::EnableSelectByGroup Megadja, hogy a maszkolt szerkesztési vezérlő kiválasztja-e a felhasználói bevitel adott csoportjait, vagy az összes felhasználói bemenetet.
CMFCMaskedEdit::EnableSetMaskedCharsOnly Azt határozza meg, hogy a szöveg csak maszkolt karaktereken vagy a teljes maszkon legyen érvényesítve.
CMFCMaskedEdit::GetThisClass A keretrendszer az ehhez az osztálytípushoz társított CRuntimeClass objektumra mutató mutató lekéréséhez használja.
CMFCMaskedEdit::GetWindowText Érvényesített szöveget kér le a maszkolt szerkesztési vezérlőből.
CMFCMaskedEdit::SetValidChars A felhasználó által megadható érvényes karakterek sztringje.
CMFCMaskedEdit::SetWindowText Megjelenik egy üzenet a maszkolt szerkesztési vezérlőben.

Védett metódusok

Név Description
CMFCMaskedEdit::IsMaskedChar A keretrendszer meghívta, hogy ellenőrizze a megadott karaktert a megfelelő maszkkaraktere alapján.

Megjegyzések

A vezérlő alkalmazásbeli használatához hajtsa végre a CMFCMaskedEdit következő lépéseket:

  1. Objektum beágyazása CMFCMaskedEdit az ablakosztályba.

  2. Hívja meg a CMFCMaskedEdit::EnableMask metódust a maszk megadásához.

  3. Hívja meg a CMFCMaskedEdit::SetValidChars metódust az érvényes karakterek listájának megadásához.

  4. Hívja meg a CMFCMaskedEdit::SetWindowText metódust a maszkolt szerkesztési vezérlő alapértelmezett szövegének megadásához.

  5. Hívja meg a CMFCMaskedEdit::GetWindowText metódust az érvényesített szöveg lekéréséhez.

Ha nem hív meg egy vagy több metódust a maszk, az érvényes karakterek és az alapértelmezett szöveg inicializálására, a maszkolt szerkesztési vezérlő ugyanúgy viselkedik, mint a szokásos szerkesztési vezérlő.

Example

Az alábbi példa bemutatja, hogyan állíthat be maszkot (például telefonszámot) a EnableMask maszkolt szerkesztési vezérlő maszkjának létrehozásához használt módszerrel, SetValidChars a felhasználó által megadható érvényes karaktersorozat megadásának módszerével, valamint SetWindowText a maszkolt szerkesztési vezérlőben megjelenő üzenettel. Ez a példa az Új vezérlők minta része.

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

Öröklési hierarchia

CObject

CCmdTarget

CWnd

CEdit

CMFCMaskedEdit

Requirements

Fejléc: afxmaskededit.h

CMFCMaskedEdit::D isableMask

Letiltja a felhasználói bevitel érvényesítését.

void DisableMask();

Megjegyzések

Ha a felhasználói bevitel ellenőrzése le van tiltva, a maszkolt szerkesztési vezérlő a szokásos szerkesztési vezérlőhöz hasonlóan viselkedik.

CMFCMaskedEdit::EnableGetMaskedCharsOnly

Megadja, hogy a GetWindowText metódus csak maszkolt karaktereket kér-e le.

void EnableGetMaskedCharsOnly(BOOL bEnable=TRUE);

Paraméterek

bEnable
[in] IGAZ érték annak megadásához, hogy a CMFCMaskedEdit::GetWindowText metódus csak maszkolt karaktereket kér le; HAMIS érték annak megadásához, hogy a metódus lekéri a teljes szöveget. Az alapértelmezett érték TRUE.

Megjegyzések

Ezzel a módszerrel engedélyezheti a maszkolt karakterek beolvasását. Ezután hozzon létre egy maszkolt szerkesztési vezérlőt, amely megfelel a telefonszámnak, például a (425) 555-0187 telefonszámnak. Ha meghívja a metódust GetWindowText , az a "4255550187" értéket adja vissza. Ha letiltja a maszkolt karakterek beolvasását, a metódus a GetWindowText szerkesztési vezérlőben megjelenő szöveget adja vissza, például: "(425) 555-0187".

CMFCMaskedEdit::EnableMask

Inicializálja a maszkolt szerkesztési vezérlőt.

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

Paraméterek

lpszMask
[in] Maszksztring, amely megadja a felhasználói bemenet minden egyes helyén megjeleníthető karaktertípust. Az lpszInputTemplate és az lpszMask paramétersztringek hosszának meg kell egyeznie. A maszkkarakterekről további információt a Megjegyzések szakaszban talál.

lpszInputTemplate
[in] Egy maszksablon sztringje, amely megadja a felhasználói bemenet minden egyes helyén megjeleníthető literális karaktereket. Használja az aláhúzásjelet ('_') karakterhelyőrzőként. Az lpszInputTemplate és az lpszMask paramétersztringek hosszának meg kell egyeznie.

chMaskInputTemplate
[in] Egy alapértelmezett karakter, amelyet a keretrendszer a felhasználói bemenet minden érvénytelen karakterére helyettesít. Ennek a paraméternek az alapértelmezett értéke az aláhúzás ('_').

lpszValid
[in] Érvényes karaktereket tartalmazó sztring. A NULL érték azt jelzi, hogy az összes karakter érvényes. Ennek a paraméternek az alapértelmezett értéke NULL.

Megjegyzések

Ezzel a módszerrel hozhatja létre a maszkolt szerkesztési vezérlőhöz tartozó maszkot. Az osztályból CMFCMaskedEdit származtathat egy osztályt, és felülbírálhatja a CMFCMaskedEdEdit::IsMaskedChar metódust a saját kódjának egyéni maszkfeldolgozáshoz való használatához.

Az alábbi táblázat az alapértelmezett maszkkarakterek listáját tartalmazza:

Maszkoló karakter Definition
D Számjegy.
d Számjegy vagy szóköz.
+ Plusz ('+'), mínusz ('-') vagy szóköz.
C Betűrendes karakter.
c Betűrendes karakter vagy szóköz.
A Alfanumerikus karakter.
a Alfanumerikus karakter vagy szóköz.
* Nyomtatható karakter.

CMFCMaskedEdit::EnableSelectByGroup

Megadja, hogy a maszkolt szerkesztési vezérlő lehetővé teszi-e a felhasználó számára adott csoportok bemenetének vagy az összes bemenetnek a kiválasztását.

void EnableSelectByGroup(BOOL bEnable=TRUE);

Paraméterek

bEnable
[in] IGAZ, ha csak csoportokat szeretne kijelölni; HAMIS a teljes szöveg kijelöléséhez. Az alapértelmezett érték TRUE.

Megjegyzések

Ezzel a függvénnyel megadhatja, hogy a maszkolt szerkesztési vezérlő lehetővé teszi-e a felhasználó számára a csoport vagy a teljes szöveg szerinti kijelölést.

Alapértelmezés szerint a csoport szerinti kijelölés engedélyezve van. Ebben az esetben a felhasználó csak az érvényes karakterek folyamatos csoportjait választhatja ki.

A telefonszám ellenőrzéséhez például a következő maszkolt szerkesztési vezérlőt használhatja:

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

Ha a csoport szerinti kijelölés engedélyezve van, a felhasználó csak a "425", az "555" vagy a "0187" sztringcsoportot tudja lekérni. Ha a csoportválasztás le van tiltva, a felhasználó lekérheti a telefonszám teljes szövegét: "(425) 555-0187".

CMFCMaskedEdit::EnableSetMaskedCharsOnly

Azt határozza meg, hogy a szöveg csak a maszkolt karaktereken vagy a teljes maszkon legyen érvényesítve.

void EnableSetMaskedCharsOnly(BOOL bEnable=TRUE);

Paraméterek

bEnable
[in] IGAZ, ha csak maszkolt karakterekre szeretné érvényesíteni a felhasználói bemenetet; HAMIS a teljes maszkon való ellenőrzéshez. Az alapértelmezett érték TRUE.

CMFCMaskedEdit::GetWindowText

Érvényesített szöveget kér le a maszkolt szerkesztési vezérlőből.

int GetWindowText(
    LPTSTR lpszStringBuf,
    int nMaxCount) const;

void GetWindowText(CString& rstrString) const;

Paraméterek

lpszStringBuf
[kifelé] Egy olyan pufferre mutató mutató, amely a szerkesztési vezérlőtől fogadja a szöveget.

nMaxCount
[in] A fogadandó karakterek maximális száma.

rstrString
[kifelé] Hivatkozás arra a sztringobjektumra, amely a szerkesztési vezérlőtől fogadja a szöveget.

Visszaadott érték

Az első metódus túlterhelése az lpszStringBuf paraméterpufferbe másolt sztring bájtjainak számát adja vissza; 0, ha a maszkolt szerkesztési vezérlőben nincs szöveg.

Megjegyzések

Ez a metódus átmásolja a szöveget a maszkolt szerkesztési vezérlőből az lpszStringBuf pufferbe vagy az rstrString sztringbe .

Ez a metódus újradefiniálja a CWnd::GetWindowText parancsot.

CMFCMaskedEdit::IsMaskedChar

A keretrendszer meghívta, hogy ellenőrizze a megadott karaktert a megfelelő maszkkaraktere alapján.

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

Paraméterek

chChar
[in] Az érvényesítendő karakter.

chMaskChar
[in] A maszk sztringjének megfelelő karaktere.

Visszaadott érték

IGAZ, ha a chChar paraméter a chMaskChar paraméter által megengedett karaktertípus; egyéb esetben HAMIS.

Megjegyzések

A metódus felülbírálása a bemeneti karakterek önálló érvényesítéséhez. A maszkkarakterekről további információt a CMFCMaskedEdit::EnableMask metódusban talál.

CMFCMaskedEdit::SetValidChars

A felhasználó által megadható érvényes karakterek sztringje.

void SetValidChars(LPCTSTR lpszValid=NULL);

Paraméterek

lpszValid
[in] Érvényes bemeneti karaktereket tartalmazó sztring. A NULL azt jelenti, hogy minden karakter érvényes. Ennek a paraméternek az alapértelmezett értéke NULL.

Megjegyzések

Ezzel a módszerrel definiálhatja az érvényes karakterek listáját. Ha egy bemeneti karakter nincs a listában, a maszkolt szerkesztési vezérlő nem fogadja el.

Az alábbi példakód csak hexadecimális számokat fogad el.

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

Megjelenik egy üzenet a maszkolt szerkesztési vezérlőben.

void SetWindowText(LPCTSTR lpszString);

Paraméterek

lpszString
[in] Egy null értékű sztringre mutat, amelyet a rendszer parancssorként fog használni.

Megjegyzések

Ez a metódus beállítja a vezérlőszöveget.

Ez a metódus újradefiniálja a CWnd::SetWindowText parancsot.

Lásd még

hierarchiadiagram
osztályok
CEdit osztály