This will be shown to users with no Flash or Javascript.
Урок V

Связывание событий с элементами управления
Связывание переменной с окном редактирования.

Сейчас вы свяжете переменную с окнм редактирования, это нам необходимо для того, чтобы иметь доступ к содержимому окна редактирования. Чтобы связать переменную с окном редактирования IDC_SPEED_EDIT выполните следующие действия
Выберете ClassWizard в меню View
Выберете закладку Member Variables в панели ClassWizard
Щелкните на кнопку Add Varible и задайте переменную следующим образом:
Varible Name: m_SpeedEdit
Category: Value
Varible Type: int

Щелкните на кнопку OK.
Теперь диалоговая панель MFC ClassWizard должна будет выглядеть так:
Так как вы определили переменную m_SpeedEdit как переменную типа int, то вы можете задать максимальное и минимальное значение этой переменной.
Задайте в Maximum Value значение 100, это значит, что вы сможете задавать значение переменной в интервале от 0 до 100.
Щелкните на кнопку OK диалоговой панели ClassWizard.
Связывание кода с событием EN_CHANGE окна редактирования

Событие EN_CHANGE происходит каждый раз при изменении содержимого окна редактирования, это мы будем использовать для того, чтобы при каждом изменении присваивать новое значение переменной m_SpeedEdit.
Чтобы связать код с событием EN_CHANGE, выполните следующие действия:
Выберете ClassWizard в меню View
Выберете закладку Message Maps в панели ClassWizard
Используйте диалоговую панель ClassWizard для выбора следующего события:
Class Name: CSpeedDlg
Object ID: IDC_SPEED_EDIT
Messages: EN_CHANGE

Щелкните на кнопку Add Fucntion и в раскрывшемся окне нажмите кнопку OK.
Сейчас ваша панель MFC ClassWizard должна будет выглядеть так:
Нажмите кнопку Edit Code и напишите следующий код в функции OnChangeSpeedEdit():
void CSpeedDlg::OnChangeSpeedEdit()
{
     // TODO: If this is a RICHEDIT control, the control will not
     // send this notification unless you modify CDialog::OnInitDialog()
     // function to send the EM_SETEVENTMASK message to the control
     // with the ENM_CHANGE flag ORed into the lParam mask.

     // TODO: Add your control notification handler code here
     ////Мой код начинается здесь////

     //Обновить экран

     UpdateData(TRUE);

     ////Мой код заканчивается здесь////
}

Вы ввели единственный оператор, который обновляет переменные элементов управления, исходя из текущего содержимого диалогового окна:

UpdateData(TRUE);
Следовательно после выполнения данного оператора переменной m_SpeedEdit будет присвоено значение содержимого окна редактирования.
Связывание кода с пунктом CurrentSpeed меню File

Сейчас вы свяжете код с событием COMMAND, которое возникает при выборе пункта меню, в данном случае при выборе пункта Current Speed.
Чтобы связать код с событием COMMAND, выполните следующие действия:
Откройте закладку Resource View, раскройте пункт Speed View, а там выбирите Menu. Выполните двойной щелчок по IDR_MENU1.
Теперь выполняем следующее:
Выберете ClassWizard в меню View
Выберете закладку Message Maps в панели ClassWizard
Используйте диалоговую панель ClassWizard для выбора следующего события:
Class Name: CSpeedDlg
Object ID: ID_FILE_CURRENTSPEED
Messages: COMMAND

Щелкните на кнопку Add Fucntion и в раскрывшемся окне нажмите кнопку OK.
Нажмите кнопку Edit Code и напишите следующий код в функции OnFileCurrentspeed():
void CSpeedDlg::OnFileCurrentspeed()
{
     // TODO: Add your command handler code here
     ////Мой код начинается здесь////
    
char strSpeed[100];
     itoa(m_SpeedEdit,strSpeed,10);
     MessageBox(strSpeed);
     ////Мой код заканчивается здесь////

}


Первые два оператора, преобразуют в строку целое значение, хранящееся в переменной m_SpeedEdit:
char strSpeed[100]; itoa(m_SpeedEdit,strSpeed,10);
Последний оператор использует функцию MessageBox() для вывода значения строки, хранящееся в переменной strSpeed:
MessageBox(strSpeed);

Связывание кода с пунктом Exit меню File

Сейчас вы свяжете код с событием COMMAND, которое возникает при выборе пункта меню, в данном случае при выборе пункта Exit.
Чтобы связать код с событием COMMAND, выполните следующие действия:
Откройте закладку Resource View, раскройте пункт Speed View, а там выбирите Menu. Выполните двойной щелчок по IDR_MENU1.
Теперь выполняем следующее:
Выберете ClassWizard в меню View
Выберете закладку Message Maps в панели ClassWizard
Используйте диалоговую панель ClassWizard для выбора следующего события:
Class Name: CSpeedDlg
Object ID: ID_FILE_EXIT
Messages: COMMAND

Щелкните на кнопку Add Fucntion и в раскрывшемся окне нажмите кнопку OK.
Нажмите кнопку Edit Code и напишите следующий код в функции OnFileExit():
void CSpeedDlg::OnFileExit()
{
     // TODO: Add your command handler code here
     ////Мой код начинается здесь////

    
OnOK();
     ////Мой код заканчивается здесь////
}

Единственный оператор, который вы ввели завершает работу программы.
Связывание кода с пунктом About меню Help

Сейчас вы свяжете код с событием COMMAND, которое возникает при выборе пункта меню, в данном случае при выборе пункта About.
Чтобы связать код с событием COMMAND, выполните следующие действия:
Откройте закладку Resource View, раскройте пункт Speed View, а там выбирите Menu. Выполните двойной щелчок по IDR_MENU1.
Теперь выполняем следующее:
Выберете ClassWizard в меню View
Выберете закладку Message Maps в панели ClassWizard
Используйте диалоговую панель ClassWizard для выбора следующего события:
Class Name: CSpeedDlg
Object ID: ID_HELP_ABOUT
Messages: COMMAND

Щелкните на кнопку Add Fucntion и в раскрывшемся окне нажмите кнопку OK.
Нажмите кнопку Edit Code и напишите следующий код в функции OnHelpAbout():
void CSpeedDlg::OnHelpAbout()
{
     // TODO: Add your command handler code here
     ////Мой код начинается здесь////
     //Создать объект класса CAboutDlg
     CAboutDlg dlg;

     //Вывести диалоговую панель About
     dlg.DoModal();

     ////Мой код заканчивается здесь////
}

Первый оператор введенный вами создает объект класса CAboutDlg с именем dlg:
CAboutDlg dlg;
Класс CAboutDlg dlg; был создан тогда, когда вы создавали проект программы, его написал Visual C++, этот класс связан с диалоговой панелью About.
Следующий оператор выводит диалоговую панель About используя функцию элемент к объекту dlg:
dlg.DoModal();

Как и предполагает имя функции, DoModal() выводит диалоговую панель, как модальную диалоговую панель, это значит что пока это окно выведено на экран, вы не сможете активировать другие окна программы.

Программа Speed завершена! Запустите ее и поэксперементируейте с ней!
Вы закончили связывание событий с элементами управления
Резюме и упражнение
<-Назад |Содержание| Дальше ->
Используются технологии uCoz