Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
A biblioteca Microsoft Foundation Classes (MFC) continua a ser suportada. No entanto, já não estamos a adicionar funcionalidades nem a atualizar a documentação.
A CMFCMaskedEdit classe suporta um controlo de edição mascarado, que valida a entrada do utilizador contra uma máscara e apresenta os resultados validados de acordo com um modelo.
Sintaxe
class CMFCMaskedEdit : public CEdit
Membros
Construtores Públicos
| Nome | Description |
|---|---|
CMFCMaskedEdit::CMFCMaskedEdit |
Construtor padrão. |
CMFCMaskedEdit::~CMFCMaskedEdit |
Destruidor. |
Métodos Públicos
| Nome | Description |
|---|---|
| CMFCMpreguntedEdit::D isableMask | Desativa a validação da entrada do utilizador. |
| CMFCMperguntadoEdit::EnableGetMaskedCharsOnly | Especifica se o GetWindowText método recupera apenas caracteres mascarados. |
| CMFCMpediuEdit::EnableMask | Inicializa o controlo de edição mascarado. |
| CMFCMperguntadoEdit::EnableSelectByGroup | Especifica se o controlo de edição mascarado seleciona grupos específicos de entrada do utilizador, ou todas as entradas do utilizador. |
| CMFCMperguntadoEdit::EnableSetMaskedCharsOnly | Especifica se o texto é validado apenas contra personagens mascarados, ou contra a máscara inteira. |
CMFCMaskedEdit::GetThisClass |
Usado pelo framework para obter um ponteiro para o objeto CRuntimeClass associado a este tipo de classe. |
| CMFCMperguntadoEdit::ObténTextoJanelaT | Recupera texto validado do controlo de edição mascarado. |
| CMFCMaskedEdit::SetValidChars | Especifica uma cadeia de caracteres válidos que o utilizador pode inserir. |
| CMFCMperguntadoEdit::SetWindowText | Mostra um prompt no controlo de edição mascarado. |
Métodos Protegidos
| Nome | Description |
|---|---|
| CMFCMpediuEdit::ÉChar Mascarado | Chamado pelo framework para validar o carácter especificado contra o correspondente caractere da máscara. |
Observações
Execute os seguintes passos para usar o CMFCMaskedEdit controlo na sua aplicação:
Incorpora um
CMFCMaskedEditobjeto na tua classe janela.Chame o método CMFCMaskedEdit::EnableMask para especificar a máscara.
Chame o método CMFCMaskedEdit::SetValidChars para especificar a lista de caracteres válidos.
Chame o método CMFCMaskedEdit::SetWindowText para especificar o texto padrão para o controlo de edição mascarado.
Chame o método CMFCMaskedEdit::GetWindowText para recuperar o texto validado.
Se não chamar um ou mais métodos para inicializar a máscara, caracteres válidos e texto padrão, o controlo de edição mascarado comporta-se exatamente como o controlo de edição padrão.
Example
O exemplo seguinte demonstra como configurar uma máscara (por exemplo, um número de telefone) usando o EnableMask método para criar a máscara para o controlo de edição mascarado, o SetValidChars método para especificar uma cadeia de caracteres válidos que o utilizador pode inserir, e SetWindowText método para mostrar um prompt no controlo de edição mascarado. Este exemplo faz parte do exemplo 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);
}
Hierarquia de herança
Requerimentos
Cabeçalho: afxmaskededit.h
CMFCMpreguntedEdit::D isableMask
Desativa a validação da entrada do utilizador.
void DisableMask();
Observações
Se a validação de entrada do utilizador estiver desativada, o controlo de edição mascarado comporta-se como o controlo de edição padrão.
CMFCMperguntadoEdit::EnableGetMaskedCharsOnly
Especifica se o GetWindowText método recupera apenas caracteres mascarados.
void EnableGetMaskedCharsOnly(BOOL bEnable=TRUE);
Parâmetros
bEnable
[dentro] TRUE para especificar que o método CMFCMaskedEdit::GetWindowText recupera apenas caracteres mascarados; FALSE para especificar que o método recupera o texto completo. O valor padrão é VERDADEIRO.
Observações
Use este método para permitir a recuperação de personagens mascarados. Depois, crie um controlo de edição mascarado que corresponda ao número de telefone, como (425) 555-0187. Se chamares o GetWindowText método, ele devolve "4255550187". Se desativar a recuperação de caracteres mascarados, o GetWindowText método devolve o texto que é exibido no controlo de edição, por exemplo "(425) 555-0187".
CMFCMpediuEdit::EnableMask
Inicializa o controlo de edição mascarado.
void EnableMask(
LPCTSTR lpszMask,
LPCTSTR lpszInputTemplate,
TCHAR chMaskInputTemplate=_T('_'),
LPCTSTR lpszValid=NULL);
Parâmetros
lpszMask
[dentro] Uma cadeia de máscara que especifica o tipo de carácter que pode aparecer em cada posição na entrada do utilizador. O comprimento das cadeias de parâmetros lpszInputTemplate e lpszMask deve ser o mesmo. Consulte a secção de Observações para mais detalhes sobre personagens de máscara.
lpszInputTemplate
[dentro] Uma cadeia de template de máscara que especifica os caracteres literais que podem aparecer em cada posição na entrada do utilizador. Usa o carácter ('_') sublinhado como marcador de personagem. O comprimento das cadeias de parâmetros lpszInputTemplate e lpszMask deve ser o mesmo.
chMaskInputTemplate
[dentro] Um carácter padrão que o framework substitui por cada carácter inválido na entrada do utilizador. O valor padrão deste parâmetro é sublinhado ('_') .
lpszValid
[dentro] Uma cadeia que contém um conjunto de caracteres válidos. NULL indica que todos os caracteres são válidos. O valor padrão deste parâmetro é NULL.
Observações
Use este método para criar a máscara para o controlo de edição mascarado. Deriva uma classe a partir dessa CMFCMaskedEdit classe e sobrepõe o método CMFCMaskedEdit::IsMaskedChar para usar o teu próprio código para processamento personalizado de máscaras.
A tabela seguinte lista os caracteres padrão das máscaras:
| Personagem Máscara | Definition |
|---|---|
| D | Digit. |
| d | Dígito ou espaço. |
| + | Mais ('+'), menos ('-'), ou espaço. |
| C | Carácter alfabético. |
| c | Carácter alfabético ou espaço. |
| A | Carácter alfanumérico. |
| a | Caráter alfanumérico ou espaço. |
| * | Uma personagem imprimível. |
CMFCMperguntadoEdit::EnableSelectByGroup
Especifica se o controlo de edição mascarado permite ao utilizador selecionar entradas específicas de grupos ou todas as entradas.
void EnableSelectByGroup(BOOL bEnable=TRUE);
Parâmetros
bEnable
[dentro] TRUE para selecionar apenas grupos; FALSE para selecionar o texto completo. O valor padrão é VERDADEIRO.
Observações
Use esta função para especificar se o controlo de edição mascarado permite ao utilizador selecionar por grupo ou por texto completo.
Por defeito, a seleção por grupo está ativada. Neste caso, o utilizador pode selecionar apenas grupos contínuos de caracteres válidos.
Por exemplo, pode usar o seguinte controlo de edição mascarado para validar um número de telefone:
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 a seleção por grupo estiver ativada, o utilizador só pode recuperar os grupos de cordas "425", "555" ou "0187". Se a seleção de grupo estiver desativada, o utilizador pode recuperar o texto completo do número de telefone: "(425) 555-0187".
CMFCMperguntadoEdit::EnableSetMaskedCharsOnly
Especifica se o texto é validado apenas contra as personagens mascaradas ou contra toda a máscara.
void EnableSetMaskedCharsOnly(BOOL bEnable=TRUE);
Parâmetros
bEnable
[dentro] TRUE para validar a entrada do utilizador apenas contra caracteres mascarados; FALSE para validar contra toda a máscara. O valor padrão é VERDADEIRO.
CMFCMperguntadoEdit::ObténTextoJanelaT
Recupera texto validado do controlo de edição mascarado.
int GetWindowText(
LPTSTR lpszStringBuf,
int nMaxCount) const;
void GetWindowText(CString& rstrString) const;
Parâmetros
lpszStringBuf
[fora] Um ponteiro para um buffer que recebe o texto do controlo de edição.
nMaxCount
[dentro] O número máximo de caracteres a receber.
rstrString
[fora] Uma referência ao objeto string que recebe o texto do controlo de edição.
Valor de retorno
A sobrecarga do primeiro método devolve o número de bytes da cadeia que é copiada para o buffer de parâmetros lpszStringBuf ; 0 se o controlo de edição mascarado não tiver texto.
Observações
Este método copia o texto do controlo de edição mascarado para o buffer lpszStringBuf ou para a cadeia rstrString .
Este método redefine CWnd::GetWindowText.
CMFCMpediuEdit::ÉChar Mascarado
Chamado pelo framework para validar o carácter especificado contra o correspondente caractere da máscara.
virtual BOOL IsMaskedChar(
TCHAR chChar,
TCHAR chMaskChar) const;
Parâmetros
chChar
[dentro] A personagem a ser validada.
chMaskChar
[dentro] O carácter correspondente da cadeia de máscara.
Valor de retorno
TRUE se o parâmetro chChar for o tipo de carácter permitido pelo parâmetro chMaskChar ; caso contrário, FALSO.
Observações
Sobreescreva este método para validar os caracteres de entrada por si próprio. Para mais informações sobre caracteres de máscara, consulte o método CMFCMaskedEdit::EnableMask .
CMFCMaskedEdit::SetValidChars
Especifica uma cadeia de caracteres válidos que o utilizador pode inserir.
void SetValidChars(LPCTSTR lpszValid=NULL);
Parâmetros
lpszValid
[dentro] Uma cadeia que contém o conjunto de caracteres de entrada válidos. NULL significa que todos os caracteres são válidos. O valor padrão deste parâmetro é NULL.
Observações
Use este método para definir uma lista de caracteres válidos. Se um carácter de entrada não estiver nesta lista, o controlo de edição mascarado não o aceitará.
O seguinte exemplo de código aceita apenas números hexadecimais.
//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"));
CMFCMperguntadoEdit::SetWindowText
Mostra um prompt no controlo de edição mascarado.
void SetWindowText(LPCTSTR lpszString);
Parâmetros
lpszString
[dentro] Aponta para uma cadeia terminada por nulo que será usada como prompt.
Observações
Este método define o texto de controlo.
Este método redefine CWnd::SetWindowText.