Студопедия

Главная страница Случайная страница

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Зв'язування змінної з вікном редагування.






§ Зв'яжемо змінну з вікном редагування, це необхідно для того, щоб мати доступ до вмісту вікна редагування. Щоб зв'язати змінну з вікном редагування IDC_SPEED_EDIT виконаємо наступні дії:

· Вибираємо ClassWizard у меню View;

· Вибираємо закладку Member Variables у панелі ClassWizard;

· Натискаємо на кнопку Add Varible та задаємо змінну в такий спосіб:


Varible Name: m_SpeedEdit
Category: Value
Varible Type: int

 

· Натискаємо на кнопку OK.

· Тепер діалогова панель MFC ClassWizard буде виглядати так:

Рисунок 4.12

· Ми визначили змінну 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():


Поделиться с друзьями:

mylektsii.su - Мои Лекции - 2015-2024 год. (0.006 сек.)Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав Пожаловаться на материал