CFirst. MFCDlg: : CFirst. MFCDlg(CWn d* p. Parent /*=NULL*/) : CDialog. Ex(CFirst. MFCDlg: : IDD, p. Parent) , m_e 1(_T("")) , m_e 2(_T("")) { m_h. Icon = Afx. Get. App()>Load. Icon(IDR_MAINFRAME); }
При виділеному вікні створюємо клас для роботи з цим вікном діалогу. Для цього викликаємо контекстне меню і вибираємо відповідний пункт.
Додаємо у вікно три елементи керування.
void CMy. Dialog: : On. Bn. Clicked. Button 2() { Update. Data(); m_m 2=m_m 1*m_m 2; Update. Data(false); }
Повертаємося в перше вікно діалогу, щоб додати командну кнопку для виклику нового вікна діалогу та поле, в якому буде відображено результат обчислення з нашого вікна.
Для роботи з новим вікном ми створили клас CMy. Dialog. Наше завдання: по натисканню на командну кнопку повинно відобразитися на екрані нове вікно діалогу.
Але класу, в якому ми зараз знаходимось, нічого не відомо про наш власний клас. Щоб ми мали можливість викортстовувати наш клас, треба за допомогою директиви include підключити відповідний заголовочний файл.
На початку файла додаєм ще один запис include і отримуєм наступний фрагмент коду: #include #include "stdafx. h" "First. MFCDlg. h" "afxdialogex. h" "My. Dialog. h"
Переходимо до вставки коду в метод void CFirst. MFCDlg: : On. Bn. Clicked. Button 2() { // TODO: Add your control notification handler code here }
Додаєм наступний код: void CFirst. MFCDlg: : On. Bn. Clicked. Button 2() { CMy. Dialog dlg; if(dlg. Do. Modal()==IDOK){ m_rez=dlg. m_m 2; Update. Data(false); } }
Запускаем додаток на виконання. 1. У вікні діалогу набираємо в лівому полі літери “asd”, натискаємо кнопку «DO» . Бачимо результат:
2. Натискаємо на кнопку “Show Dialog 2”. Відкривається наше вікно діалогу.
3. В ліве полі вводимо 2, в праве – 3. Натискаємо “Calc”. В правому полі з’являється результат обчислення виразу.
4. Натискаємо кнопку “OK”. Повертаємость в головне вікно, де у відповідному полі відображається результат обчислення з другого вікна.