Partager via


CMFCMaskedEdit, classe

La CMFCMaskedEdit classe prend en charge un contrôle d’édition masqué, qui valide l’entrée de l’utilisateur par rapport à un masque et affiche les résultats validés en fonction d’un modèle.

Syntaxe

class CMFCMaskedEdit : public CEdit

Membres

Constructeurs publics

Nom Description
CMFCMaskedEdit::CMFCMaskedEdit Constructeur par défaut.
CMFCMaskedEdit::~CMFCMaskedEdit Destructeur.

Méthodes publiques

Nom Description
CMFCMaskedEdit ::D isableMask Désactive la validation de l’entrée utilisateur.
CMFCMaskedEdit ::EnableGetMaskedCharsOnly Spécifie si la GetWindowText méthode récupère uniquement les caractères masqués.
CMFCMaskedEdit ::EnableMask Initialise le contrôle de modification masqué.
CMFCMaskedEdit ::EnableSelectByGroup Spécifie si le contrôle d’édition masqué sélectionne des groupes particuliers d’entrée utilisateur ou toutes les entrées utilisateur.
CMFCMaskedEdit ::EnableSetMaskedCharsOnly Spécifie si le texte est validé par rapport uniquement aux caractères masqués ou à l’ensemble du masque.
CMFCMaskedEdit::GetThisClass Utilisé par l’infrastructure pour obtenir un pointeur vers l’objet CRuntimeClass associé à ce type de classe.
CMFCMaskedEdit ::GetWindowText Récupère le texte validé à partir du contrôle d’édition masqué.
CMFCMaskedEdit ::SetValidChars Spécifie une chaîne de caractères valides que l’utilisateur peut entrer.
CMFCMaskedEdit ::SetWindowText Affiche une invite dans le contrôle d’édition masqué.

Méthodes protégées

Nom Description
CMFCMaskedEdit ::IsMaskedChar Appelé par l’infrastructure pour valider le caractère spécifié par rapport au caractère de masque correspondant.

Notes

Procédez comme suit pour utiliser le CMFCMaskedEdit contrôle dans votre application :

  1. Incorporez un CMFCMaskedEdit objet dans votre classe de fenêtre.

  2. Appelez la méthode CMFCMaskedEdit ::EnableMask pour spécifier le masque.

  3. Appelez la méthode CMFCMaskedEdit ::SetValidChars pour spécifier la liste des caractères valides.

  4. Appelez la méthode CMFCMaskedEdit ::SetWindowText pour spécifier le texte par défaut du contrôle d’édition masqué.

  5. Appelez la méthode CMFCMaskedEdit ::GetWindowText pour récupérer le texte validé.

Si vous n’appelez pas une ou plusieurs méthodes pour initialiser le masque, les caractères valides et le texte par défaut, le contrôle d’édition masqué se comporte tout comme le contrôle d’édition standard se comporte.

Exemple

L’exemple suivant montre comment configurer un masque (par exemple un numéro de téléphone) à l’aide de la EnableMask méthode permettant de créer le masque pour le contrôle d’édition masqué, la SetValidChars méthode permettant de spécifier une chaîne de caractères valides que l’utilisateur peut entrer et SetWindowText la méthode pour afficher une invite dans le contrôle d’édition masqué. Cet exemple fait partie de l’exemple New Controls.

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

Hiérarchie d'héritage

CObject

CCmdTarget

CWnd

CEdit

CMFCMaskedEdit

Spécifications

En-tête : afxmaskedit.h

CMFCMaskedEdit ::D isableMask

Désactive la validation de l’entrée utilisateur.

void DisableMask();

Notes

Si la validation d’entrée utilisateur est désactivée, le contrôle d’édition masqué se comporte comme le contrôle d’édition standard.

CMFCMaskedEdit ::EnableGetMaskedCharsOnly

Spécifie si la GetWindowText méthode récupère uniquement les caractères masqués.

void EnableGetMaskedCharsOnly(BOOL bEnable=TRUE);

Paramètres

bEnable
[in] TRUE pour spécifier que la méthode CMFCMaskedEdit ::GetWindowText récupère uniquement les caractères masqués ; FALSE pour spécifier que la méthode récupère le texte entier. La valeur par défaut est TRUE.

Notes

Utilisez cette méthode pour activer la récupération de caractères masqués. Créez ensuite un contrôle d’édition masqué qui correspond au numéro de téléphone, tel que (425) 555-0187. Si vous appelez la GetWindowText méthode, elle retourne « 4255550187 ». Si vous désactivez la récupération de caractères masqués, la GetWindowText méthode retourne le texte affiché dans le contrôle d’édition, par exemple « (425) 555-0187 ».

CMFCMaskedEdit ::EnableMask

Initialise le contrôle de modification masqué.

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

Paramètres

lpszMask
[in] Chaîne de masque qui spécifie le type de caractère qui peut apparaître à chaque position dans l’entrée utilisateur. La longueur des chaînes de paramètre lpszInputTemplate et lpszMask doit être identique. Pour plus d’informations sur les caractères de masque, consultez la section Remarques.

lpszInputTemplate
[in] Chaîne de modèle de masque qui spécifie les caractères littéraux qui peuvent apparaître à chaque position dans l’entrée utilisateur. Utilisez le caractère ('_') de soulignement comme espace réservé de caractères. La longueur des chaînes de paramètre lpszInputTemplate et lpszMask doit être identique.

chMaskInputTemplate
[in] Caractère par défaut que l’infrastructure remplace par chaque caractère non valide dans l’entrée utilisateur. La valeur par défaut de ce paramètre est de soulignement ('_') .

lpszValid
[in] Chaîne qui contient un ensemble de caractères valides. NULL indique que tous les caractères sont valides. La valeur par défaut de ce paramètre est NULL.

Notes

Utilisez cette méthode pour créer le masque pour le contrôle d’édition masqué. Dérivez une classe de la CMFCMaskedEdit classe et remplacez la méthode CMFCMaskedEdit ::IsMaskedChar pour utiliser votre propre code pour le traitement personnalisé du masque.

Le tableau suivant répertorie les caractères de masque par défaut :

Caractère de masque Définition
D Chiffre.
j Chiffre ou espace.
+ Plus ('+'), moins ('-') ou espace.
C Caractère alphabétique.
c Caractère alphabétique ou espace.
A Caractère alphanumérique.
a Caractère alphanumérique ou espace.
* Caractère imprimable.

CMFCMaskedEdit ::EnableSelectByGroup

Spécifie si le contrôle d’édition masqué permet à l’utilisateur de sélectionner des entrées de groupes particuliers ou toutes les entrées.

void EnableSelectByGroup(BOOL bEnable=TRUE);

Paramètres

bEnable
[in] TRUE pour sélectionner uniquement des groupes ; FALSE pour sélectionner l’intégralité du texte. La valeur par défaut est TRUE.

Notes

Utilisez cette fonction pour spécifier si le contrôle d’édition masqué permet à un utilisateur de sélectionner par groupe ou par texte entier.

Par défaut, la sélection par groupe est activée. Dans ce cas, l’utilisateur peut sélectionner uniquement des groupes continus de caractères valides.

Par exemple, vous pouvez utiliser le contrôle d’édition masqué suivant pour valider un numéro de téléphone :

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

Si la sélection par groupe est activée, l’utilisateur peut récupérer uniquement les groupes de chaînes « 425 », « 555 » ou « 0187 ». Si la sélection de groupe est désactivée, l’utilisateur peut récupérer le texte entier du numéro de téléphone : « (425) 555-0187 ».

CMFCMaskedEdit ::EnableSetMaskedCharsOnly

Spécifie si le texte est validé uniquement par rapport aux caractères masqués ou à l’ensemble du masque.

void EnableSetMaskedCharsOnly(BOOL bEnable=TRUE);

Paramètres

bEnable
[in] TRUE pour valider l’entrée de l’utilisateur par rapport uniquement aux caractères masqués ; FALSE pour valider par rapport à l’ensemble du masque. La valeur par défaut est TRUE.

CMFCMaskedEdit ::GetWindowText

Récupère le texte validé à partir du contrôle d’édition masqué.

int GetWindowText(
    LPTSTR lpszStringBuf,
    int nMaxCount) const;

void GetWindowText(CString& rstrString) const;

Paramètres

lpszStringBuf
[out] Pointeur vers une mémoire tampon qui reçoit le texte du contrôle d’édition.

nMaxCount
[in] Nombre maximal de caractères à recevoir.

rstrString
[out] Référence à l’objet de chaîne qui reçoit le texte du contrôle d’édition.

Valeur de retour

La première surcharge de méthode retourne le nombre d’octets de la chaîne copiée dans la mémoire tampon du paramètre lpszStringBuf ; 0 si le contrôle d’édition masqué n’a pas de texte.

Notes

Cette méthode copie le texte du contrôle d’édition masqué vers la mémoire tampon lpszStringBuf ou la chaîne rstrString .

Cette méthode redéfinit CWnd ::GetWindowText.

CMFCMaskedEdit ::IsMaskedChar

Appelé par l’infrastructure pour valider le caractère spécifié par rapport au caractère de masque correspondant.

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

Paramètres

chChar
[in] Caractère à valider.

chMaskChar
[in] Caractère correspondant de la chaîne de masque.

Valeur de retour

TRUE si le paramètre chChar est le type de caractère autorisé par le paramètre chMaskChar ; sinon, FALSE.

Notes

Remplacez cette méthode pour valider les caractères d’entrée par vous-même. Pour plus d’informations sur les caractères de masque, consultez la méthode CMFCMaskedEdit ::EnableMask .

CMFCMaskedEdit ::SetValidChars

Spécifie une chaîne de caractères valides que l’utilisateur peut entrer.

void SetValidChars(LPCTSTR lpszValid=NULL);

Paramètres

lpszValid
[in] Chaîne qui contient l’ensemble de caractères d’entrée valides. NULL signifie que tous les caractères sont valides. La valeur par défaut de ce paramètre est NULL.

Notes

Utilisez cette méthode pour définir une liste de caractères valides. Si un caractère d’entrée n’est pas dans cette liste, le contrôle d’édition masqué ne l’accepte pas.

L’exemple de code suivant accepte uniquement les nombres hexadécimaux.

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

Affiche une invite dans le contrôle d’édition masqué.

void SetWindowText(LPCTSTR lpszString);

Paramètres

lpszString
[in] Pointe vers une chaîne terminée par null qui sera utilisée comme invite.

Notes

Cette méthode définit le texte du contrôle.

Cette méthode redéfinit CWnd ::SetWindowText.

Voir aussi

Graphique hiérarchique
Classes
CEdit, classe