Udostępnij za pośrednictwem


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:

  1. CMFCMaskedEdit Osadź obiekt w klasie okna.

  2. Wywołaj metodę CMFCMaskedEdit::EnableMask , aby określić maskę.

  3. Wywołaj metodę CMFCMaskedEdit::SetValidChars , aby określić listę prawidłowych znaków.

  4. Wywołaj metodę CMFCMaskedEdit::SetWindowText , aby określić domyślny tekst kontrolki edycji maskowanej.

  5. 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

Obiekt CObject

CCmdTarget

CWnd

CEdit

CmFCMaskedEdit

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.

Zobacz też

Wykres hierarchii
Klasy
Klasa CEdit