Visual C++. MFC
Урок 19. Обмен данными с диалогом
В этом уроке мы с вами посмотрим как, используя ClassWizard, производить обмен данных между программой и диалоговым окном. Наша программа будет передавать строку из диалогового окна в свое главное окно и обратно. Передаваемая строка будет появлятся в заголовке нашего приложения.
Добавьте на наше диалоговое окно Edit:
Для того, чтобы передавать данные в диалог и обратно, нам надо завести две переменные - одну в классе диалогового окна, а другую - в оконном классе CMyMainWnd. Сначала заведем переменную в классе диалогового окна. Для этого вызываем ClassWizard, переходим в нем на вкладку Member Variables, в ComboBox'е Class name выбираем класс нашего диалогового окна CDlg, затем выделяем идентификатор IDC_EDIT1 (это идентификатор Edit'а, который мы добавили в наш диалог), и, наконец, нажимаем на кнопку Add Variable:
Повляется окно Add Member Variable. В нем задайте m_sMyString в качестве имени для новой переменной (и убедитесь, что для ComboBox'а Variable type стоит тип CString):
Нажмите OK. Дабавленная нами переменная покажется в ClassWizard:
Кроме того она покажется в классе CDlg на вкладке ClassView:
Теперь добавим переменную в оконный класс:
class CMyMainWnd : public CFrameWnd{
...
public:
CString m_sMyString;
...
Теперь осталось переписать код для нашего меню. Он должен выглядеть так:
void CMyMainWnd::OnMyMenuDialog(){
CDlg dlg;
dlg.m_sMyString=m_sMyString; //Передаем данные в диалог
if(dlg.DoModal()==IDCANCEL) //Если нажали на cancel,
return; //то выходим
m_sMyString=dlg.m_sMyString;//Передаем данные и диалога
SetWindowText(m_sMyString); //Новый заголовок для окна
}
Запускаем прогамму и вызываем наше диалоговое окно. Задаем в нем новую строку:
Нажимаем на OK. Введенная строка покажется в заголовке нашей программы:
Также обратите внимание, что при повторном вызове диалога в нем опять покажется наша строка.
|