Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 2 июля!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Возможности языков семейства Си по истине безграничны, однако, в этой свободе кроются и недостатки: всегда нужно программисту держать ухо востро и контроллировать "переполнение буфера", чтобы потом программа не вылетала в "синий экран" на массе разнообразных версий Windows и железа у пользователей. Те же крэкеры и реверсеры специально ищут в коде программ на Си уязвимости, куда можно подсадить любой вирусный код, об этом более подробно автор рассказывал в своём видеокурсе здесь. Я там многое узнал и теперь мой код стал значительно более безопасный.
Расширенное управление вводом путем создания оконных подклассов
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);



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS