Classe CMFCMaskedEdit

La CMFCMaskedEdit classe supporta un controllo di modifica mascherato, che convalida l'input dell'utente su una maschera e visualizza i risultati convalidati in base a un modello.

Sintassi

class CMFCMaskedEdit : public CEdit

Membri

Costruttori pubblici

Nome Descrizione
CMFCMaskedEdit::CMFCMaskedEdit Costruttore predefinito.
CMFCMaskedEdit::~CMFCMaskedEdit Distruttore.

Metodi pubblici

Nome Descrizione
CMFCMaskedEdit::D isableMask Disabilita la convalida dell'input dell'utente.
CMFCMaskedEdit::EnableGetMaskedCharsOnly Specifica se il GetWindowText metodo recupera solo caratteri mascherati.
CMFCMaskedEdit::EnableMask Inizializza il controllo di modifica mascherato.
CMFCMaskedEdit::EnableSelectByGroup Specifica se il controllo di modifica mascherato seleziona determinati gruppi di input utente o tutti gli input dell'utente.
CMFCMaskedEdit::EnableSetMaskedCharsOnly Specifica se il testo viene convalidato in base solo ai caratteri mascherati o all'intera maschera.
CMFCMaskedEdit::GetThisClass Usato dal framework per ottenere un puntatore all'oggetto CRuntimeClass associato a questo tipo di classe.
CMFCMaskedEdit::GetWindowText Recupera il testo convalidato dal controllo di modifica mascherato.
CMFCMaskedEdit::SetValidChars Specifica una stringa di caratteri validi che l'utente può immettere.
CMFCMaskedEdit::SetWindowText Visualizza una richiesta nel controllo di modifica mascherato.

Metodi protetti

Nome Descrizione
CMFCMaskedEdit::IsMaskedChar Chiamato dal framework per convalidare il carattere specificato rispetto al carattere mask corrispondente.

Osservazioni:

Per usare il CMFCMaskedEdit controllo nell'applicazione, seguire questa procedura:

  1. Incorporare un CMFCMaskedEdit oggetto nella classe window.

  2. Chiamare il metodo CMFCMaskedEdit::EnableMask per specificare la maschera.

  3. Chiamare il metodo CMFCMaskedEdit::SetValidChars per specificare l'elenco di caratteri validi.

  4. Chiamare il metodo CMFCMaskedEdit::SetWindowText per specificare il testo predefinito per il controllo di modifica mascherato.

  5. Chiamare il metodo CMFCMaskedEdit::GetWindowText per recuperare il testo convalidato.

Se non si chiama uno o più metodi per inizializzare la maschera, i caratteri validi e il testo predefinito, il controllo di modifica mascherato si comporta esattamente come si comporta il controllo di modifica standard.

Esempio

Nell'esempio seguente viene illustrato come configurare una maschera ,ad esempio un numero di telefono, utilizzando il EnableMask metodo per creare la maschera per il controllo di modifica mascherato, il SetValidChars metodo per specificare una stringa di caratteri validi che l'utente può immettere e SetWindowText il metodo per visualizzare una richiesta nel controllo di modifica mascherato. Questo esempio fa parte dell'esempio New Controls.This example is part of the New Controls sample.

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

Gerarchia di ereditarietà

CObject

CCmdTarget

CWnd

CEdit

CMFCMaskedEdit

Requisiti

Intestazione: afxmaskededit.h

CMFCMaskedEdit::D isableMask

Disabilita la convalida dell'input dell'utente.

void DisableMask();

Osservazioni:

Se la convalida dell'input utente è disabilitata, il controllo di modifica mascherato si comporta come il controllo di modifica standard.

CMFCMaskedEdit::EnableGetMaskedCharsOnly

Specifica se il GetWindowText metodo recupera solo caratteri mascherati.

void EnableGetMaskedCharsOnly(BOOL bEnable=TRUE);

Parametri

bEnable
[in] TRUE per specificare che il metodo CMFCMaskedEdit::GetWindowText recupera solo i caratteri mascherati; FALSE per specificare che il metodo recupera l'intero testo. Il valore predefinito è TRUE.

Osservazioni:

Utilizzare questo metodo per abilitare il recupero di caratteri mascherati. Creare quindi un controllo di modifica mascherato che corrisponde al numero di telefono, ad esempio (425) 555-0187. Se si chiama il GetWindowText metodo , restituisce "4255550187". Se si disabilita il recupero dei caratteri mascherati, il GetWindowText metodo restituisce il testo visualizzato nel controllo di modifica, ad esempio "(425) 555-0187".

CMFCMaskedEdit::EnableMask

Inizializza il controllo di modifica mascherato.

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

Parametri

lpszMask
[in] Stringa di maschera che specifica il tipo di carattere che può essere visualizzato in ogni posizione nell'input dell'utente. La lunghezza delle stringhe dei parametri lpszInputTemplate e lpszMask deve essere la stessa. Per altri dettagli sui caratteri maschera, vedere la sezione Osservazioni.

lpszInputTemplate
[in] Stringa del modello di maschera che specifica i caratteri letterali che possono essere visualizzati in ogni posizione nell'input dell'utente. Usare il carattere di ('_') sottolineatura come segnaposto carattere. La lunghezza delle stringhe dei parametri lpszInputTemplate e lpszMask deve essere la stessa.

chMaskInputTemplate
[in] Carattere predefinito sostituito dal framework per ogni carattere non valido nell'input dell'utente. Il valore predefinito di questo parametro è di sottolineatura ('_') .

lpszValid
[in] Stringa contenente un set di caratteri validi. NULL indica che tutti i caratteri sono validi. Il valore predefinito di questo parametro è NULL.

Osservazioni:

Utilizzare questo metodo per creare la maschera per il controllo di modifica mascherato. Derivare una classe dalla CMFCMaskedEdit classe ed eseguire l'override del metodo CMFCMaskedEdit::IsMaskedChar per usare il proprio codice per l'elaborazione della maschera personalizzata.

Nella tabella seguente sono elencati i caratteri di maschera predefiniti:

Maschera carattere Definizione
D Cifra.
d Cifra o spazio.
+ Più ('+'), meno ('-') o spazio.
A Carattere alfabetico.
c Carattere alfabetico o spazio.
Un Carattere alfanumerico.
a Carattere alfanumerico o spazio.
* Carattere stampabile.

CMFCMaskedEdit::EnableSelectByGroup

Specifica se il controllo di modifica mascherato consente all'utente di selezionare determinati gruppi di input o di tutti gli input.

void EnableSelectByGroup(BOOL bEnable=TRUE);

Parametri

bEnable
[in] TRUE per selezionare solo i gruppi; FALSE per selezionare l'intero testo. Il valore predefinito è TRUE.

Osservazioni:

Utilizzare questa funzione per specificare se il controllo di modifica mascherato consente a un utente di selezionare in base al gruppo o all'intero testo.

Per impostazione predefinita, la selezione per gruppo è abilitata. In questo caso l'utente può selezionare solo gruppi continui di caratteri validi.

Ad esempio, è possibile utilizzare il controllo di modifica mascherato seguente per convalidare un numero di telefono:

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

Se la selezione per gruppo è abilitata, l'utente può recuperare solo i gruppi di stringhe "425", "555" o "0187". Se la selezione del gruppo è disabilitata, l'utente può recuperare l'intero testo del numero di telefono: "(425) 555-0187".

CMFCMaskedEdit::EnableSetMaskedCharsOnly

Specifica se il testo viene convalidato in base solo ai caratteri mascherati o all'intera maschera.

void EnableSetMaskedCharsOnly(BOOL bEnable=TRUE);

Parametri

bEnable
[in] TRUE per convalidare l'input dell'utente in base solo ai caratteri mascherati; FALSE per la convalida rispetto all'intera maschera. Il valore predefinito è TRUE.

CMFCMaskedEdit::GetWindowText

Recupera il testo convalidato dal controllo di modifica mascherato.

int GetWindowText(
    LPTSTR lpszStringBuf,
    int nMaxCount) const;

void GetWindowText(CString& rstrString) const;

Parametri

lpszStringBuf
[out] Puntatore a un buffer che riceve il testo dal controllo di modifica.

nMaxCount
[in] Numero massimo di caratteri da ricevere.

rstrString
[out] Riferimento all'oggetto stringa che riceve il testo dal controllo di modifica.

Valore restituito

Il primo overload del metodo restituisce il numero di byte della stringa copiata nel buffer dei parametri lpszStringBuf ; 0 se il controllo di modifica mascherato non contiene testo.

Osservazioni:

Questo metodo copia il testo dal controllo di modifica mascherato nel buffer lpszStringBuf o nella stringa rstrString .

Questo metodo ridefinisce CWnd::GetWindowText.

CMFCMaskedEdit::IsMaskedChar

Chiamato dal framework per convalidare il carattere specificato rispetto al carattere mask corrispondente.

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

Parametri

chChar
[in] Carattere da convalidare.

chMaskChar
[in] Carattere corrispondente dalla stringa della maschera.

Valore restituito

TRUE se il parametro chChar è il tipo di carattere consentito dal parametro chMaskChar ; in caso contrario, FALSE.

Osservazioni:

Eseguire l'override di questo metodo per convalidare i caratteri di input autonomamente. Per altre informazioni sui caratteri maschera, vedere il metodo CMFCMaskedEdit::EnableMask.

CMFCMaskedEdit::SetValidChars

Specifica una stringa di caratteri validi che l'utente può immettere.

void SetValidChars(LPCTSTR lpszValid=NULL);

Parametri

lpszValid
[in] Stringa contenente il set di caratteri di input validi. NULL indica che tutti i caratteri sono validi. Il valore predefinito di questo parametro è NULL.

Osservazioni:

Utilizzare questo metodo per definire un elenco di caratteri validi. Se un carattere di input non è presente in questo elenco, il controllo di modifica mascherato non lo accetterà.

Nell'esempio di codice seguente vengono accettati solo numeri esadecimali.

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

Visualizza una richiesta nel controllo di modifica mascherato.

void SetWindowText(LPCTSTR lpszString);

Parametri

lpszString
[in] Punta a una stringa con terminazione Null che verrà usata come richiesta.

Osservazioni:

Questo metodo imposta il testo del controllo.

Questo metodo ridefinisce CWnd::SetWindowText.

Vedi anche

Grafico della gerarchia
Classi
Classe CEdit