Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Давно заметил, что всё-таки языки С/C++ это не самый лучший вариант программирования под Windows. Сейчас появилась масса более современных и удобных языков, например тот же Python - кроссплатформенный язык, очень легок в изучение. Я его изучил буквально за несколько дней по этому курсу - ссылка. Автор постарался, там видеоуроки на удивление легкие и понятные.

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

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

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



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS