Связывание кода с событием 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 должна будет выглядеть так, как показано на рисунке 24.

Связывание кода с событием EN_CHANGE окна редактирования - student2.ru

Рис.24. Диалоговая панель 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();

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

}

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

Наши рекомендации