Класс CMFCMaskedEdit

Класс CMFCMaskedEdit поддерживает элемент управления редактирования с маской, который проверяет входные данные пользователя в маске и отображает проверенные результаты в соответствии с шаблоном.

Синтаксис

class CMFCMaskedEdit : public CEdit

Участники

Открытые конструкторы

Имя Описание
CMFCMaskedEdit::CMFCMaskedEdit Конструктор по умолчанию.
CMFCMaskedEdit::~CMFCMaskedEdit Деструктор.

Открытые методы

Имя Описание
CMFCMaskedEdit::D isableMask Отключает проверку входных данных пользователей.
CMFCMaskedEdit::EnableGetMaskedCharsOnly Указывает, извлекает ли GetWindowText метод только маскированные символы.
CMFCMaskedEdit::EnableMask Инициализирует элемент управления "Маскированные изменения".
CMFCMaskedEdit::EnableSelectByGroup Указывает, выбирает ли элемент управления "Маскированные изменения" определенные группы входных данных пользователя или все входные данные пользователя.
CMFCMaskedEdit::EnableSetMaskedCharsOnly Указывает, проверяется ли текст только на маскированных символах или по всей маске.
CMFCMaskedEdit::GetThisClass Используется платформой для получения указателя на объект CRuntimeClass , связанный с этим типом класса.
CMFCMaskedEdit::GetWindowText Извлекает проверенный текст из элемента управления "Маскированное редактирование".
CMFCMaskedEdit::SetValidChars Указывает строку допустимых символов, которые пользователь может ввести.
CMFCMaskedEdit::SetWindowText Отображает запрос в элементе управления "Маскированные изменения".

Защищенные методы

Имя Описание
CMFCMaskedEdit::IsMaskedChar Вызывается платформой для проверки указанного символа с соответствующим символом маски.

Замечания

Выполните следующие действия, чтобы использовать CMFCMaskedEdit элемент управления в приложении:

  1. CMFCMaskedEdit Внедрение объекта в класс окна.

  2. Вызовите метод CMFCMaskedEdit::EnableMask, чтобы указать маску.

  3. Вызовите метод CMFCMaskedEdit::SetValidChars, чтобы указать список допустимых символов.

  4. Вызовите метод CMFCMaskedEdit::SetWindowText, чтобы указать текст по умолчанию для маскированного элемента управления редактирования.

  5. Вызовите метод CMFCMaskedEdit::GetWindowText, чтобы получить проверенный текст.

Если вы не вызываете один или несколько методов для инициализации маски, допустимых символов и текста по умолчанию, элемент управления с маской редактирования ведет себя так же, как и стандартный элемент управления редактирования.

Пример

В следующем примере показано, как настроить маску (например, номер телефона) с помощью EnableMask метода для создания маски для элемента управления "Маскирование редактирования", SetValidChars метода для указания строки допустимых символов, которые пользователь может ввести, и SetWindowText метода для отображения запроса в элементе управления "Маскированные изменения". Этот пример является частью примера "Новые элементы управления".

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

Иерархия наследования

CObject

CCmdTarget

CWnd

CEdit

CMFCMaskedEdit

Требования

Заголовок: afxmaskededit.h

CMFCMaskedEdit::D isableMask

Отключает проверку входных данных пользователей.

void DisableMask();

Замечания

Если проверка ввода пользователем отключена, элемент управления редактирования с маской ведет себя как стандартный элемент управления редактирования.

CMFCMaskedEdit::EnableGetMaskedCharsOnly

Указывает, извлекает ли GetWindowText метод только маскированные символы.

void EnableGetMaskedCharsOnly(BOOL bEnable=TRUE);

Параметры

bEnable
[in] ЗНАЧЕНИЕ TRUE, чтобы указать, что метод CMFCMaskedEdit::GetWindowText извлекает только маскированные символы; Значение FALSE, чтобы указать, что метод извлекает весь текст. Значение по умолчанию — TRUE.

Замечания

Используйте этот метод для включения извлечения маскированных символов. Затем создайте элемент управления редактирования с маской, соответствующий номеру телефона, например (425) 555-0187. При вызове GetWindowText метода возвращается значение "4255550187". При отключении извлечения маскированных символов GetWindowText метод возвращает текст, отображаемый в элементе управления редактированием, например "(425) 555-0187".

CMFCMaskedEdit::EnableMask

Инициализирует элемент управления "Маскированные изменения".

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

Параметры

lpszMask
[in] Строка маски, указывающая тип символа, который может отображаться в каждой позиции в входных данных пользователя. Длина строк параметров lpszInputTemplate и lpszMask должна совпадать. Дополнительные сведения о символах маски см. в разделе "Примечания".

lpszInputTemplate
[in] Строка шаблона маски, указывающая литеральные символы, которые могут отображаться в каждой позиции в входных данных пользователя. Используйте символ ('_') подчеркивания в качестве заполнителя символов. Длина строк параметров lpszInputTemplate и lpszMask должна совпадать.

chMaskInputTemplate
[in] Символ по умолчанию, заменяющий платформу для каждого недопустимого символа в входных данных пользователя. Значение по умолчанию этого параметра — подчеркивание ('_').

lpszValid
[in] Строка, содержащая набор допустимых символов. NULL указывает, что все символы допустимы. Значение по умолчанию этого параметра равно NULL.

Замечания

Используйте этот метод для создания маски для элемента управления "Маскирование правки". Наследуйте класс из CMFCMaskedEdit класса и переопределите метод CMFCMaskedEdit::IsMaskedChar , чтобы использовать собственный код для пользовательской обработки маски.

В следующей таблице перечислены символы маски по умолчанию:

Символ маски Определение
D Цифра.
дн. Цифры или пробелы.
+ Плюс ('+'), минус ('-) или пробел.
C Алфавитный символ.
в Алфавитный символ или пробел.
а Буквенно-цифровой символ.
a Буквенно-цифровой символ или пробел.
* Печатный символ.

CMFCMaskedEdit::EnableSelectByGroup

Указывает, позволяет ли пользователь выбирать входные данные определенных групп или все входные данные.

void EnableSelectByGroup(BOOL bEnable=TRUE);

Параметры

bEnable
[in] ЗНАЧЕНИЕ TRUE для выбора только групп; ЗНАЧЕНИЕ FALSE для выбора всего текста. Значение по умолчанию — TRUE.

Замечания

Используйте эту функцию, чтобы указать, позволяет ли пользователь выбирать по группам или всему тексту маскированный элемент управления редактирования.

По умолчанию выбор по группе включен. В этом случае пользователь может выбрать только непрерывные группы допустимых символов.

Например, для проверки номера телефона можно использовать следующий элемент управления маскированного редактирования:

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

Если выбор по группе включен, пользователь может получить только группы строк "425", "555" или "0187". Если выбор группы отключен, пользователь может получить весь текст номера телефона: "(425) 555-0187".

CMFCMaskedEdit::EnableSetMaskedCharsOnly

Указывает, проверяется ли текст только на основе маскированных символов или по всей маске.

void EnableSetMaskedCharsOnly(BOOL bEnable=TRUE);

Параметры

bEnable
[in] ЗНАЧЕНИЕ TRUE для проверки входных данных пользователя только на маскированные символы; ЗНАЧЕНИЕ FALSE для проверки всей маски. Значение по умолчанию — TRUE.

CMFCMaskedEdit::GetWindowText

Извлекает проверенный текст из элемента управления "Маскированное редактирование".

int GetWindowText(
    LPTSTR lpszStringBuf,
    int nMaxCount) const;

void GetWindowText(CString& rstrString) const;

Параметры

lpszStringBuf
[out] Указатель на буфер, который получает текст из элемента управления редактирования.

nMaxCount
[in] Максимальное число получаемых символов.

rstrString
[out] Ссылка на строковый объект, получающий текст из элемента управления редактирования.

Возвращаемое значение

Первая перегрузка метода возвращает количество байтов строки, скопированной в буфер параметров lpszStringBuf ; 0, если элемент управления с маской редактирования не содержит текста.

Замечания

Этот метод копирует текст из маскированного элемента управления редактирования в буфер lpszStringBuf или строку rstrString .

Этот метод переопределяет CWnd::GetWindowText.

CMFCMaskedEdit::IsMaskedChar

Вызывается платформой для проверки указанного символа с соответствующим символом маски.

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

Параметры

chChar
[in] Символ для проверки.

chMaskChar
[in] Соответствующий символ из строки маски.

Возвращаемое значение

ЗНАЧЕНИЕ TRUE, если параметр chChar является типом символа, разрешенного параметром chMaskChar ; в противном случае — ЗНАЧЕНИЕ FALSE.

Замечания

Переопределите этот метод, чтобы проверить входные символы самостоятельно. Дополнительные сведения о символах маски см. в методе CMFCMaskedEdit::EnableMask .

CMFCMaskedEdit::SetValidChars

Указывает строку допустимых символов, которые пользователь может ввести.

void SetValidChars(LPCTSTR lpszValid=NULL);

Параметры

lpszValid
[in] Строка, содержащая набор допустимых входных символов. NULL означает, что все символы допустимы. Значение по умолчанию этого параметра равно NULL.

Замечания

Используйте этот метод для определения списка допустимых символов. Если входной символ не находится в этом списке, элемент управления редактирования в маске не будет принимать его.

В следующем примере кода принимаются только шестнадцатеричные числа.

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

Отображает запрос в элементе управления "Маскированные изменения".

void SetWindowText(LPCTSTR lpszString);

Параметры

lpszString
[in] Указывает на строку, завершающую значение NULL, которая будет использоваться в качестве запроса.

Замечания

Этот метод задает текст элемента управления.

Этот метод переопределяет CWnd::SetWindowText.

См. также

Диаграмма иерархии
Классы
Класс CEdit