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

ВИДЕОКУРС ВЗЛОМ
выпущен 28 января!


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

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



Программисты долго мучаются с кодом прогаммы, изучают С++, WinAPI функции, MSDN. Потом пишут банальную систему защиты или навешивают банальный протектор, а крэкеры и реверсеры справляются с такой защитой за 5 минут. В итоге, продажи программы почти нулевые. Чтобы такого не допустить, тут самому надо немного поднабрать опыта отладки, реверсинга, тот же отладчик Ollydbg изучить или дизассемблер IDA Pro. Но где искать по крохам эти знания? Нет, конечно можно годами "методом тыка" разбираться, но куда быстрее видеокурс специальный посмотреть. Вот тут он есть: ссылка. Автор курса с большим опытом и объясняет понятно, я из этого курса много узнал про то как работает компьютер, процессор, про инструменты специальные и как с ними работать. Мои коллеги программисты на работе ничего такого и не знают, теперь я им нос утру.

Visual C++.NET
Урок 4. Добавляем диалоговое окно

В этом уроке мы создадим диалоговое окно с одним edit'ом. Это диалоговое окно будет появляться при щелчке на добавленном в прошлом уроке меню и пользователь сможет задать в этом edit'е некоторое число, которое будет передаваться в основное окно нашей программы. При повторном вызове этого диалогового окна в edit'е уже будет автоматически находится введенная ранее пользователем значение, т. е. данные будут передаветься и из диалогового окна, и в него.

Для начала создадим диалоговое окно. Для этого заходим в меню Project, в котором выбираем Add Resource:

Добавление диалогового окна

В появившемся окне Add Resource выбираем, естественно, пункт Dialog и нажимаем на кнопку New. Появится заготовка для нашего диалогового окна. Двойным щелчком перенесите в него edit с панели Toolbox:

Добавление edit'а

Сохраните вашу работу, нажав на кнопку Save All. Теперь мы должны на основе нашего диалогового окна создать класс. Для этого щелкаем на созданном диалоге правой кнопкой мыши и выбираем пункт Add Class. В появившемся диалоговом окне MFC Class Wizard задайте имя класса как COptionsDlg и в качестве родительского класса выберите CDialog:

Диалоговое окно MFC Class Wizard

Нажмите на кнопку Finish.

Теперь надо задать две одинаковые переменные - одну в классе диалогового окна COptionsDgl, другую - в классе вида CfirstView. Пусть эти переменные для определенности называются m_nSize. Тип у них будет int. Для задания переменной в классе CfirstView просто щелкните на нем правой кнопкой мыши на вкладке ClassView, выберите в контекстном меню Add и далее Add Variable:

Добавление переменой

В появившемся окне Add Member Variable Wizard задайте тип переменой как int и имя как m_nSize:

Окно Add Member Variable Wizard

Нажмите на кнопку Finish.

Теперь добавим переменную в класс COptionsDlg. Делаем это точно также, как и для предыдущего класса, только на этот раз мы хотим приписать нашу переменную к edit'у, а поэтому в диалоговом окне Add Member Variable Wizard поставьте галочку Control Variable, в качестве идентификатора элемента управления выберите IDC_EDIT1, в качестве категории - Value, тип и имя переменной задайте как и для предыдущего класса - int и m_nSize:

Окно Add Member Variable Wizard

Нажмите на Finish.

Теперь приступаем к коду. Измените созданный в прошлом уроке обработчик меню следующим образом:

void CfirstView::OnToolsOptions()
 
 {
 
     // TODO: Add your command handler code here
 
     COptionsDlg dlg;//Создаем экземпляр диалога
 
     dlg.m_nSize=m_nSize;//Читаем данные в диалог
 
     if(dlg.DoModal()!=IDOK) return; //выходим по cancel
 
     m_nSize=dlg.m_nSize;//Читаем данные из диалога
 
     Invalidate();//перерисовываем главное окно
 
 }

Кроме того, нам надо добавить в начало файла firstView.cpp строчку

...
 
 #include "OptionsDgl.h"
 
 ...

Это мы делаем потому, что класс COptionsDlg используем в этом файле, и компилятор должен наш класс видеть.

Запустите программу (Ctrl+F5). При выборе нашего пункта меню будет появлятся диалоговое окно и, кроме того, введенное нами значение будет сохраняться при повторных вызовах нашего диалога.



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

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




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



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


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