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 :
Incorporez un
CMFCMaskedEdit
objet dans votre classe de fenêtre.Appelez la méthode CMFCMaskedEdit ::EnableMask pour spécifier le masque.
Appelez la méthode CMFCMaskedEdit ::SetValidChars pour spécifier la liste des caractères valides.
Appelez la méthode CMFCMaskedEdit ::SetWindowText pour spécifier le texte par défaut du contrôle d’édition masqué.
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
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.