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
:
CMFCMaskedEdit
Vložte objekt do třídy okna.Volání CMFCMaskedEdit::EnableMask metoda určit masku.
Volání CMFCMaskedEdit::SetValidChars metoda určit seznam platných znaků.
Volání CMFCMaskedEdit::SetWindowText metoda určit výchozí text pro maskovaný edit ovládací prvek.
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
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.