Сейчас вы свяжете переменную с окнм редактирования, это нам
необходимо для того, чтобы иметь доступ к содержимому окна
редактирования. Чтобы связать переменную с окном редактирования
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
Первые два оператора, преобразуют в строку целое значение,
хранящееся в переменной 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 завершена! Запустите ее и
поэксперементируейте с ней!
Вы закончили связывание событий с элементами управления