Partilhar via


CMFCMperguntadaEditar Classe

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:

  1. Incorpora um CMFCMaskedEdit objeto na tua classe janela.

  2. Chame o método CMFCMaskedEdit::EnableMask para especificar a máscara.

  3. Chame o método CMFCMaskedEdit::SetValidChars para especificar a lista de caracteres válidos.

  4. Chame o método CMFCMaskedEdit::SetWindowText para especificar o texto padrão para o controlo de edição mascarado.

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

CObject

CCmdTarget

CWnd

CEdit

CMFCMpediuEdit

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.

Consulte também

Gráfico de Hierarquia
Classes
Classe CEdit