Расширенное управление вводом путем создания оконных подклассов
//////////////////////////////////////////////////////////////////////////////Когда нужно поле ввода, которое допускает ввод только чисел, нужно установить стиль Number в окне свойств элемента управления. А как быть если нужно, например, запретить ввод чисел. Тогда нужно немного попрограммировать и поступить можно нижеописанным образом.
// Расширенное управление вводом путем создания оконных подклассов.
// Автор статьи: cyberSpice друг Ozzy Osbourne.
// e-mail: Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в вашем браузере должен быть включен Javascript.
// www: http://shuya.ipn.ru/~cyberSpice
//////////////////////////////////////////////////////////////////////////////
1. В редакторе ресурсов поместите на диалог поле ввода CEdit. И пусть его идентификатор будет IDC_EDIT1.
2. Создайте новый класс (например CMyEdit), производный от CEdit. И напишите обработчик сообщения WM_CHAR:
void CMyEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)<br>3. В заголовке производного класса диалогового окна объявите закрытую переменную-член класса CMyEdit:
{
if (!isdigit(nChar)) // если это не цифра
CEdit::OnChar(nChar, nRepCnt, nFlags);
}
// ...4. Добавьте в переопределенную функцию OnInitDialog строку:
private:
CMyEdit m_MyEdit;
// ...
m_MyEdit.SubclassDlgItem(IDC_EDIT1, this);