Шаг 44 - Перегрузка OnOk

В прошлом шаге мы с Вами убедились, что данные от элемента управления получить не удается. Нам нужно какое-то событие, которое происходит при нажатии на кнопку OK, чтобы вернуть данные. И такое событие есть. Давайте его перегрузим и добавим свой код. Сделать это можно двойным щелчком левой кнопки мыши по кнопке Ok.

44_1.gif (9184 b)

У нас появится функция:

void CMyDialog::OnOK() 
{
	// TODO: Add extra validation here
	CDialog::OnOK();
}

Вот в нее мы и напишем код передачи данных от элемента в нашу переменную:

void CMyDialog::OnOK() 
{
	// TODO: Add extra validation here
	
	m_Ed1.GetWindowText(m_Ed1_str); 
	CDialog::OnOK();
}

И теперь мы можем получать данные назад используя эту переменную.

void CTest6Doc::OnTestTest() 
{
	cm.m_Ed1_str ="Test";
	cm.m_Ed2 = "extern";
	cm.DoModal(); 
	AfxMessageBox(cm.m_Ed1_str);  
}

Запускаем и редактируем данные.

44_2.gif (3825 b)

А после закрытия диалога данные изменены.

44_3.gif (2249 b)

Мы практически повторили механизм DDX.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 28.06.2002