Sdílet prostřednictvím


CMFCMaskedEdit – třída

Třída CMFCMaskedEdit podporuje maskovaný ovládací prvek pro úpravy, který ověřuje vstup uživatele proti masce a zobrazuje ověřené výsledky podle šablony.

Syntaxe

class CMFCMaskedEdit : public CEdit

Členové

Veřejné konstruktory

Jméno popis
CMFCMaskedEdit::CMFCMaskedEdit Výchozí konstruktor.
CMFCMaskedEdit::~CMFCMaskedEdit Destruktor.

Veřejné metody

Jméno popis
CMFCMaskedEdit::D isableMask Zakáže ověřování vstupu uživatele.
CMFCMaskedEdit::EnableGetMaskedCharsOnly Určuje, zda GetWindowText metoda načte pouze maskované znaky.
CMFCMaskedEdit::EnableMask Inicializuje maskovaný ovládací prvek pro úpravy.
CMFCMaskedEdit::EnableSelectByGroup Určuje, zda maskovaný ovládací prvek pro úpravy vybere konkrétní skupiny uživatelského vstupu nebo veškerý uživatelský vstup.
CMFCMaskedEdit::EnableSetMaskedCharsOnly Určuje, zda je text ověřen pouze pro maskované znaky, nebo pro celou masku.
CMFCMaskedEdit::GetThisClass Používá se architekturou k získání ukazatele na CRuntimeClass objektu, který je přidružen k tomuto typu třídy.
CMFCMaskedEdit::GetWindowText Načte ověřený text z maskovaného ovládacího prvku pro úpravy.
CMFCMaskedEdit::SetValidChars Určuje řetězec platných znaků, které může uživatel zadat.
CMFCMaskedEdit::SetWindowText Zobrazí výzvu v ovládacím prvku maskovaných úprav.

Chráněné metody

Jméno popis
CMFCMaskedEdit::IsMaskedChar Volá se rozhraním k ověření zadaného znaku vůči odpovídajícímu znaku masky.

Poznámky

Pomocí ovládacího prvku v aplikaci proveďte následující kroky CMFCMaskedEdit :

  1. CMFCMaskedEdit Vložte objekt do třídy okna.

  2. Volání CMFCMaskedEdit::EnableMask metoda určit masku.

  3. Volání CMFCMaskedEdit::SetValidChars metoda určit seznam platných znaků.

  4. Volání CMFCMaskedEdit::SetWindowText metoda určit výchozí text pro maskovaný edit ovládací prvek.

  5. Volání CMFCMaskedEdit::GetWindowText metoda načtení ověřeného textu.

Pokud nevoláte jednu nebo více metod pro inicializaci masky, platných znaků a výchozího textu, chová se ovládací prvek maskovaných úprav stejně jako standardní ovládací prvek pro úpravy.

Příklad

Následující příklad ukazuje, jak nastavit masku (například telefonní číslo) pomocí EnableMask metody vytvořit masku pro maskovaný ovládací prvek pro úpravy, SetValidChars metoda určit řetězec platných znaků, které může uživatel zadat, a SetWindowText metodu pro zobrazení výzvy v ovládacím prvku maskované úpravy. Tento příklad je součástí ukázky Nové ovládací prvky.

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

Hierarchie dědičnosti

Objekt CObject

CCmdTarget

Cwnd

CEdit

CMFCMaskedEdit

Požadavky

Hlavička: afxmaskedit.h

CMFCMaskedEdit::D isableMask

Zakáže ověřování vstupu uživatele.

void DisableMask();

Poznámky

Pokud je ověření vstupu uživatele zakázané, maskovaný ovládací prvek pro úpravy se chová jako standardní ovládací prvek pro úpravy.

CMFCMaskedEdit::EnableGetMaskedCharsOnly

Určuje, zda GetWindowText metoda načte pouze maskované znaky.

void EnableGetMaskedCharsOnly(BOOL bEnable=TRUE);

Parametry

bEnable
[v] TRUE určit, že CMFCMaskedEdit::GetWindowText metoda načíst pouze maskované znaky; False určuje, že metoda načte celý text. Výchozí hodnota je PRAVDA.

Poznámky

Tuto metodu použijte k povolení načítání maskovaných znaků. Pak vytvořte maskovaný ovládací prvek pro úpravy, který odpovídá telefonnímu číslu, například (425) 555-0187. Pokud zavoláte metodu GetWindowText , vrátí "4255550187". Pokud zakážete načítání maskovaných znaků, GetWindowText vrátí metoda text zobrazený v ovládacím prvku pro úpravy, například "(425) 555-0187".

CMFCMaskedEdit::EnableMask

Inicializuje maskovaný ovládací prvek pro úpravy.

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

Parametry

lpszMask
[v] Řetězec masky, který určuje typ znaku, který se může objevit na každé pozici ve vstupu uživatele. Délka řetězců parametrů lpszInputTemplate a lpszMask musí být stejná. Další podrobnosti o znacích masky najdete v části Poznámky.

lpszInputTemplate
[v] Řetězec šablony masky, který určuje literální znaky, které se můžou objevit na každé pozici ve vstupu uživatele. Jako zástupný symbol znaku ('_') použijte podtržítko. Délka řetězců parametrů lpszInputTemplate a lpszMask musí být stejná.

chMaskInputTemplate
[v] Výchozí znak, který architektura nahradí každý neplatný znak ve vstupu uživatele. Výchozí hodnota tohoto parametru je podtržítko ('_') .

lpszValid
[v] Řetězec, který obsahuje sadu platných znaků. Hodnota NULL označuje, že všechny znaky jsou platné. Výchozí hodnota tohoto parametru je NULL.

Poznámky

Pomocí této metody vytvořte masku pro maskovaný ovládací prvek pro úpravy. Odvození třídy z CMFCMaskedEdit třídy a přepsání CMFCMaskedEdit::IsMaskedChar metoda použít vlastní kód pro vlastní zpracování masky.

V následující tabulce jsou uvedeny výchozí znaky masky:

Mask Character Definice
D Číslice.
d Číslice nebo mezera
+ Plus (+), minus (-) nebo mezera.
C Abecední znak.
c Abecední znak nebo mezera
A Alfanumerický znak.
d Alfanumerický znak nebo mezera
* Tisknutelný znak.

CMFCMaskedEdit::EnableSelectByGroup

Určuje, zda maskovaný ovládací prvek pro úpravy umožňuje uživateli vybrat konkrétní vstup skupiny nebo všechny vstupy.

void EnableSelectByGroup(BOOL bEnable=TRUE);

Parametry

bEnable
[v] PRAVDA pro výběr pouze skupin; NEPRAVDA pro výběr celého textu. Výchozí hodnota je PRAVDA.

Poznámky

Pomocí této funkce můžete určit, zda maskovaný ovládací prvek pro úpravy umožňuje uživateli vybrat podle skupiny nebo celého textu.

Ve výchozím nastavení je povolen výběr podle skupiny. V takovém případě může uživatel vybrat pouze souvislé skupiny platných znaků.

K ověření telefonního čísla můžete použít například následující maskovaný ovládací prvek pro úpravy:

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

Pokud je povolen výběr podle skupiny, může uživatel načíst pouze skupiny řetězců 425, 555 nebo 0187. Pokud je výběr skupiny zakázaný, může uživatel načíst celý text telefonního čísla: "(425) 555-0187".

CMFCMaskedEdit::EnableSetMaskedCharsOnly

Určuje, zda je text ověřen pouze pro maskované znaky nebo pro celou masku.

void EnableSetMaskedCharsOnly(BOOL bEnable=TRUE);

Parametry

bEnable
[v] TRUE pro ověření vstupu uživatele pouze maskovanými znaky; NEPRAVDA pro ověření proti celé masce. Výchozí hodnota je PRAVDA.

CMFCMaskedEdit::GetWindowText

Načte ověřený text z maskovaného ovládacího prvku pro úpravy.

int GetWindowText(
    LPTSTR lpszStringBuf,
    int nMaxCount) const;

void GetWindowText(CString& rstrString) const;

Parametry

lpszStringBuf
[ven] Ukazatel na vyrovnávací paměť, která přijímá text z ovládacího prvku pro úpravy.

nMaxCount
[v] Maximální počet znaků, které se mají přijmout.

rstrString
[ven] Odkaz na objekt řetězce, který obdrží text z ovládacího prvku pro úpravy.

Vrácená hodnota

První přetížení metody vrátí počet bajtů řetězce, který je zkopírován do vyrovnávací paměti parametru lpszStringBuf ; 0 pokud maskovaný ovládací prvek pro úpravy nemá žádný text.

Poznámky

Tato metoda zkopíruje text z maskovaného ovládacího prvku pro úpravy do vyrovnávací paměti lpszStringBuf nebo řetězec rstrString .

Tato metoda předefinuje CWnd::GetWindowText.

CMFCMaskedEdit::IsMaskedChar

Volá se rozhraním k ověření zadaného znaku vůči odpovídajícímu znaku masky.

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

Parametry

chChar
[v] Znak, který se má ověřit.

chMaskChar
[v] Odpovídající znak z řetězce masky.

Vrácená hodnota

TRUE, pokud je parametr chChar typem znaku povoleného parametrem chMaskChar ; jinak NEPRAVDA.

Poznámky

Tuto metodu přepište, abyste ověřili vstupní znaky sami. Další informace o znaky masky naleznete v CMFCMaskedEdit::EnableMask metoda.

CMFCMaskedEdit::SetValidChars

Určuje řetězec platných znaků, které může uživatel zadat.

void SetValidChars(LPCTSTR lpszValid=NULL);

Parametry

lpszValid
[v] Řetězec, který obsahuje sadu platných vstupních znaků. HODNOTA NULL znamená, že všechny znaky jsou platné. Výchozí hodnota tohoto parametru je NULL.

Poznámky

Tato metoda slouží k definování seznamu platných znaků. Pokud vstupní znak není v tomto seznamu, maskovaný ovládací prvek pro úpravy ho nepřijme.

Následující příklad kódu přijímá pouze šestnáctková čísla.

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

Zobrazí výzvu v ovládacím prvku maskovaných úprav.

void SetWindowText(LPCTSTR lpszString);

Parametry

lpszString
[v] Odkazuje na řetězec ukončený hodnotou null, který se použije jako výzva.

Poznámky

Tato metoda nastaví ovládací text.

Tato metoda předefinuje CWnd::SetWindowText.

Viz také

Graf hierarchie
Třídy
CEdit – třída