Klasa CMFCMaskedEdit
Klasa CMFCMaskedEdit
obsługuje maskowaną kontrolkę edycji, która weryfikuje dane wejściowe użytkownika względem maski i wyświetla zweryfikowane wyniki zgodnie z szablonem.
Składnia
class CMFCMaskedEdit : public CEdit
Elementy członkowskie
Konstruktory publiczne
Nazwa/nazwisko | opis |
---|---|
CMFCMaskedEdit::CMFCMaskedEdit |
Konstruktor domyślny. |
CMFCMaskedEdit::~CMFCMaskedEdit |
Destruktor. |
Metody publiczne
Nazwa/nazwisko | opis |
---|---|
CMFCMaskedEdit::D sableMask | Wyłącza weryfikowanie danych wejściowych użytkownika. |
CMFCMaskedEdit::EnableGetMaskedCharsOnly | Określa, czy GetWindowText metoda pobiera tylko zamaskowane znaki. |
CMFCMaskedEdit::EnableMask | Inicjuje maskowaną kontrolkę edycji. |
CMFCMaskedEdit::EnableSelectByGroup | Określa, czy maskowana kontrolka edycji wybiera określone grupy danych wejściowych użytkownika, czy wszystkie dane wejściowe użytkownika. |
CMFCMaskedEdit::EnableSetMaskedCharsOnly | Określa, czy tekst jest weryfikowany tylko pod kątem znaków maskowanych, czy dla całej maski. |
CMFCMaskedEdit::GetThisClass |
Używany przez platformę do uzyskiwania wskaźnika do obiektu CRuntimeClass skojarzonego z tym typem klasy. |
CMFCMaskedEdit::GetWindowText | Pobiera zweryfikowany tekst z maskowanej kontrolki edycji. |
CMFCMaskedEdit::SetValidChars | Określa ciąg prawidłowych znaków, które użytkownik może wprowadzić. |
CMFCMaskedEdit::SetWindowText | Wyświetla monit w maskowanej kontrolce edycji. |
Metody chronione
Nazwa/nazwisko | opis |
---|---|
CMFCMaskedEdit::IsMaskedChar | Wywoływana przez strukturę w celu zweryfikowania określonego znaku względem odpowiedniego znaku maski. |
Uwagi
Wykonaj następujące kroki, aby użyć kontrolki CMFCMaskedEdit
w aplikacji:
CMFCMaskedEdit
Osadź obiekt w klasie okna.Wywołaj metodę CMFCMaskedEdit::EnableMask , aby określić maskę.
Wywołaj metodę CMFCMaskedEdit::SetValidChars , aby określić listę prawidłowych znaków.
Wywołaj metodę CMFCMaskedEdit::SetWindowText , aby określić domyślny tekst kontrolki edycji maskowanej.
Wywołaj metodę CMFCMaskedEdit::GetWindowText , aby pobrać zweryfikowany tekst.
Jeśli nie wywołasz co najmniej jednej metody inicjowania maski, prawidłowych znaków i tekstu domyślnego, maskowana kontrolka edycji zachowuje się tak samo jak kontrolka edycji standardowej.
Przykład
W poniższym przykładzie pokazano, jak skonfigurować maskę (na przykład numer telefonu) przy użyciu EnableMask
metody tworzenia maski dla maskowanej kontrolki edycji, SetValidChars
metody określania ciągu prawidłowych znaków, które użytkownik może wprowadzić, oraz SetWindowText
metody wyświetlania monitu w maskowanej kontrolce edycji. Ten przykład jest częścią przykładu Nowe kontrolki.
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);
}
Hierarchia dziedziczenia
Wymagania
Nagłówek: afxmaskededit.h
CMFCMaskedEdit::D sableMask
Wyłącza weryfikowanie danych wejściowych użytkownika.
void DisableMask();
Uwagi
Jeśli walidacja danych wejściowych użytkownika jest wyłączona, maskowana kontrolka edycji zachowuje się jak kontrolka edycji standardowej.
CMFCMaskedEdit::EnableGetMaskedCharsOnly
Określa, czy GetWindowText
metoda pobiera tylko zamaskowane znaki.
void EnableGetMaskedCharsOnly(BOOL bEnable=TRUE);
Parametry
bEnable
[in] PRAWDA, aby określić, że metoda CMFCMaskedEdit::GetWindowText pobiera tylko zamaskowane znaki; FAŁSZ, aby określić, że metoda pobiera cały tekst. Wartość domyślna to TRUE.
Uwagi
Użyj tej metody, aby włączyć pobieranie zamaskowanych znaków. Następnie utwórz maskowaną kontrolkę edycji odpowiadającą numerowi telefonu, takie jak (425) 555-0187. Jeśli wywołasz metodę GetWindowText
, zwraca ona wartość "4255550187". Jeśli wyłączysz pobieranie zamaskowanych znaków, GetWindowText
metoda zwróci tekst wyświetlany w kontrolce edycji, na przykład "(425) 555-0187".
CMFCMaskedEdit::EnableMask
Inicjuje maskowaną kontrolkę edycji.
void EnableMask(
LPCTSTR lpszMask,
LPCTSTR lpszInputTemplate,
TCHAR chMaskInputTemplate=_T('_'),
LPCTSTR lpszValid=NULL);
Parametry
lpszMask
[in] Ciąg maski określający typ znaku, który może pojawić się na każdej pozycji w danych wejściowych użytkownika. Długość ciągów parametrów lpszInputTemplate i lpszMask musi być taka sama. Aby uzyskać więcej informacji na temat znaków maski, zobacz sekcję Uwagi.
lpszInputTemplate
[in] Ciąg szablonu maski, który określa znaki literału, które mogą pojawiać się w każdej pozycji w danych wejściowych użytkownika. Użyj znaku ('_') podkreślenia jako symbolu zastępczego znaku. Długość ciągów parametrów lpszInputTemplate i lpszMask musi być taka sama.
chMaskInputTemplate
[in] Domyślny znak, który platforma zastępuje dla każdego nieprawidłowego znaku w danych wejściowych użytkownika. Wartość domyślna tego parametru to podkreślenie ('_') .
lpszValid
[in] Ciąg zawierający zestaw prawidłowych znaków. Wartość NULL wskazuje, że wszystkie znaki są prawidłowe. Wartość domyślna tego parametru to NULL.
Uwagi
Użyj tej metody, aby utworzyć maskę dla maskowanej kontrolki edycji. Utwórz klasę z CMFCMaskedEdit
klasy i zastąpij metodę CMFCMaskedEdit::IsMaskedChar , aby użyć własnego kodu do niestandardowego przetwarzania maski.
Poniższa tabela zawiera listę domyślnych znaków maski:
Znak maski | Definicja |
---|---|
D | Cyfra. |
d | Cyfra lub spacja. |
+ | Plus ('+'), minus ('-') lub spacja. |
C | Znak alfabetyczny. |
c | Znak alfabetyczny lub spacja. |
A | Znak alfanumeryczny. |
a | Znak alfanumeryczny lub spacja. |
* | Znak drukowalny. |
CMFCMaskedEdit::EnableSelectByGroup
Określa, czy maskowana kontrolka edycji umożliwia użytkownikowi wybieranie określonych grup danych wejściowych, czy wszystkich danych wejściowych.
void EnableSelectByGroup(BOOL bEnable=TRUE);
Parametry
bEnable
[in] WARTOŚĆ TRUE, aby wybrać tylko grupy; FAŁSZ, aby zaznaczyć cały tekst. Wartość domyślna to TRUE.
Uwagi
Użyj tej funkcji, aby określić, czy maskowana kontrolka edycji umożliwia użytkownikowi wybranie według grupy lub całego tekstu.
Domyślnie wybór według grupy jest włączony. W takim przypadku użytkownik może wybrać tylko ciągłe grupy prawidłowych znaków.
Na przykład możesz użyć następującej maskowanej kontrolki edycji, aby zweryfikować numer telefonu:
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
Jeśli wybór według grupy jest włączony, użytkownik może pobrać tylko grupy ciągów "425", "555" lub "0187". Jeśli zaznaczenie grupy jest wyłączone, użytkownik może pobrać cały tekst numeru telefonu: "(425) 555-0187".
CMFCMaskedEdit::EnableSetMaskedCharsOnly
Określa, czy tekst jest weryfikowany tylko względem zamaskowanych znaków, czy dla całej maski.
void EnableSetMaskedCharsOnly(BOOL bEnable=TRUE);
Parametry
bEnable
[in] WARTOŚĆ TRUE w celu zweryfikowania danych wejściowych użytkownika tylko względem znaków maskowanych; FAŁSZ do sprawdzania poprawności całej maski. Wartość domyślna to TRUE.
CMFCMaskedEdit::GetWindowText
Pobiera zweryfikowany tekst z maskowanej kontrolki edycji.
int GetWindowText(
LPTSTR lpszStringBuf,
int nMaxCount) const;
void GetWindowText(CString& rstrString) const;
Parametry
lpszStringBuf
[out] Wskaźnik do buforu, który odbiera tekst z kontrolki edycji.
nMaxCount
[in] Maksymalna liczba znaków do odebrania.
rstrString
[out] Odwołanie do obiektu ciągu, który odbiera tekst z kontrolki edycji.
Wartość zwracana
Pierwsze przeciążenie metody zwraca liczbę bajtów ciągu skopiowanego do buforu parametru lpszStringBuf ; 0, jeśli maskowana kontrolka edycji nie ma tekstu.
Uwagi
Ta metoda kopiuje tekst z maskowanej kontrolki edycji do buforu lpszStringBuf lub ciągu rstrString .
Ta metoda definiuje definicję CWnd::GetWindowText.
CMFCMaskedEdit::IsMaskedChar
Wywoływana przez strukturę w celu zweryfikowania określonego znaku względem odpowiedniego znaku maski.
virtual BOOL IsMaskedChar(
TCHAR chChar,
TCHAR chMaskChar) const;
Parametry
chChar
[in] Znak, który ma zostać zweryfikowany.
chMaskChar
[in] Odpowiadający mu znak z ciągu maski.
Wartość zwracana
WARTOŚĆ TRUE, jeśli parametr chChar jest typem znaku dozwolonego przez parametr chMaskChar ; w przeciwnym razie FALSE.
Uwagi
Zastąpij tę metodę, aby samodzielnie zweryfikować znaki wejściowe. Aby uzyskać więcej informacji na temat znaków maski, zobacz metodę CMFCMaskedEdit::EnableMask .
CMFCMaskedEdit::SetValidChars
Określa ciąg prawidłowych znaków, które użytkownik może wprowadzić.
void SetValidChars(LPCTSTR lpszValid=NULL);
Parametry
lpszValid
[in] Ciąg zawierający zestaw prawidłowych znaków wejściowych. Wartość NULL oznacza, że wszystkie znaki są prawidłowe. Wartość domyślna tego parametru to NULL.
Uwagi
Użyj tej metody, aby zdefiniować listę prawidłowych znaków. Jeśli znak wejściowy nie znajduje się na tej liście, maskowana kontrolka edycji nie zaakceptuje jej.
Poniższy przykład kodu akceptuje tylko liczby szesnastkowe.
//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
Wyświetla monit w maskowanej kontrolce edycji.
void SetWindowText(LPCTSTR lpszString);
Parametry
lpszString
[in] Wskazuje ciąg zakończony o wartości null, który będzie używany jako monit.
Uwagi
Ta metoda ustawia tekst kontrolki.
Ta metoda definiuje definicję CWnd::SetWindowText.