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

ВИДЕОКУРС ВЗЛОМ
выпущен 2 августа!


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

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



Возможности языков семейства Си по истине безграничны, однако, в этой свободе кроются и недостатки: всегда нужно программисту держать ухо востро и контроллировать "переполнение буфера", чтобы потом программа не вылетала в "синий экран" на массе разнообразных версий Windows и железа у пользователей. Те же крэкеры и реверсеры специально ищут в коде программ на Си уязвимости, куда можно подсадить любой вирусный код, об этом более подробно автор рассказывал в своём видеокурсе здесь. Я там многое узнал и теперь мой код стал значительно более безопасный.

Visual C++. MFC
Урок 10. Добавление кнопочки к окну

Давайте теперь расположим в нашем окне какой-нибудь элемент управления. Например, кнопочку. Для кнопок в MFC существует класс CButton. Добавим в наш оконный класс переменную типа CButton:

class CMyMainWnd : public CFrameWnd{
 
 public:
 
     CButton m_btn1;
 
     ...

Но наличие переменной типа CButton ещё не означает, что у нас кнопочка появится на нашем окне. Для того, чтобы она появилась, мы должны её создать. Делаем мы это с помощью метода Create. Метод этот принадлежит классу CButton. Теперь вопрос, а где и когда мы можем создать нашу кнопку? Давайте создадим её при создании нашего окна. Для достижения этого мы должны написать обработчик для события WM_CREATE (он будет называться OnCreate). Делаем это. Добавляем функцию в класс:

}
 
     ~CMyMainWnd(){
 
         KillTimer(1);
 
         KillTimer(2);
 
     }
 
     afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);

Добавляем макрос в карту сообщений:

...
 
 ON_WM_TIMER()
 
 ON_WM_CREATE()
 
 END_MESSAGE_MAP()

Добавляем реализацию нашей функции:

int CMyMainWnd::OnCreate(LPCREATESTRUCT lpCreateStruct){
 
     m_btn1.Create("My Button", WS_VISIBLE|WS_CHILD,
 
         CRect(0,0,130,40), this, 1200);
 
     return 0;
 
 }

Метод Create класса CButton имеет несколько параметров. Первый - это надпись на кнопке ("My Button"). Второй - стили кнопки. Мы указали, что кнопка должна быть видима (ну ещё бы!) и что кнопка будет подчинёным окном (стиль WS_CHILD). Если стилей несколько, то вы соединяете их с помощью побитового или (|). Следующий параметр определяет прямоугольник, который наша кнопка займёт (Координаты левого верхнего и правого нижнего углов). Здесь мы создаём безымянный объект типа CRect - класса MFC для прямоугольников. Предпоследний параметр (this) - это указатель на родительское окно. Так как наша кнопка должна принадлежать нашему окну, то мы и пишем this (так как мы находимся в оконном классе). И, наконец, последний параметр - это идентификатор кнопки. Мы написали 1200, но можно написать любое число. Важно, чтобы оно было уникальным. У каждого объекта должен быть свой идентификатор. Мы будем его использовать на следующем уроке.

Запускаем нашу программу. В окне появилась кнопка:

Окно с кнопкой

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

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




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



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


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