C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 Расширенное управление вводом путем создания оконных подклассов / MFC / Visual C++

Расширенное управление вводом путем создания оконных подклассов
A: (cyberSpice)
Оригинальная ссылка: нету

//////////////////////////////////////////////////////////////////////////////
//  Расширенное управление вводом путем создания оконных подклассов.
//  Автор статьи: cyberSpice друг Ozzy Osbourne.
//  e-mail: alex@shuya.ipn.ru
//  www: http://shuya.ipn.ru/~cyberSpice
//////////////////////////////////////////////////////////////////////////////
Когда нужно поле ввода, которое допускает ввод только чисел, нужно установить стиль Number в окне свойств элемента управления. А как быть если нужно, например, запретить ввод чисел. Тогда нужно немного попрограммировать и поступить можно нижеописанным образом.

1. В редакторе ресурсов поместите на диалог поле ввода CEdit. И пусть его идентификатор будет IDC_EDIT1.

2. Создайте новый класс (например CMyEdit), производный от CEdit. И напишите обработчик сообщения WM_CHAR:
   void CMyEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)<br>
   {
       if (!isdigit(nChar))  // если это не цифра
           CEdit::OnChar(nChar, nRepCnt, nFlags);
   }
3. В заголовке производного класса диалогового окна объявите закрытую переменную-член класса CMyEdit:
//  ...
   private:
       CMyEdit m_MyEdit;
//  ...
4. Добавьте в переопределенную функцию OnInitDialog строку:
   m_MyEdit.SubclassDlgItem(IDC_EDIT1, this);