Класс 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
элемент управления в приложении:
CMFCMaskedEdit
Внедрение объекта в класс окна.Вызовите метод CMFCMaskedEdit::EnableMask, чтобы указать маску.
Вызовите метод CMFCMaskedEdit::SetValidChars, чтобы указать список допустимых символов.
Вызовите метод CMFCMaskedEdit::SetWindowText, чтобы указать текст по умолчанию для маскированного элемента управления редактирования.
Вызовите метод 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);
}
Иерархия наследования
Требования
Заголовок: 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 | Цифра. |
d | Цифры или пробелы. |
+ | Плюс ('+'), минус ('-) или пробел. |
C | Алфавитный символ. |
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.