C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
   Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
   "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©[email protected]...
   "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
   01.05.2010 — Update World C++: Сборник GPL QT исходников
   15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


  
Кулабухов Артем, Беларусь




 Урок 19. Обмен данными с диалогом / Уроки MFC / Visual C++

Visual C++. MFC
Урок 19. Обмен данными с диалогом

В этом уроке мы с вами посмотрим как, используя ClassWizard, производить обмен данных между программой и диалоговым окном. Наша программа будет передавать строку из диалогового окна в свое главное окно и обратно. Передаваемая строка будет появлятся в заголовке нашего приложения.

Добавьте на наше диалоговое окно Edit:

Edit

Для того, чтобы передавать данные в диалог и обратно, нам надо завести две переменные - одну в классе диалогового окна, а другую - в оконном классе CMyMainWnd. Сначала заведем переменную в классе диалогового окна. Для этого вызываем ClassWizard, переходим в нем на вкладку Member Variables, в ComboBox'е Class name выбираем класс нашего диалогового окна CDlg, затем выделяем идентификатор IDC_EDIT1 (это идентификатор Edit'а, который мы добавили в наш диалог), и, наконец, нажимаем на кнопку Add Variable:

Окно ClassWizard

Повляется окно Add Member Variable. В нем задайте m_sMyString в качестве имени для новой переменной (и убедитесь, что для ComboBox'а Variable type стоит тип CString):

Окно Add Member Variable

Нажмите OK. Дабавленная нами переменная покажется в ClassWizard:

Переменная в ClassWizard

Кроме того она покажется в классе CDlg на вкладке ClassView:

Переменная в 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. Введенная строка покажется в заголовке нашей программы:

Новый заголовок

Также обратите внимание, что при повторном вызове диалога в нем опять покажется наша строка.