Активизировать передачу данных в элементы управления или назад в переменные можно в любой момент времени. Вот мы этот механизм и помучаем. Создаем диалог на нем два элемента управления связанные с переменными механизмом DDX и две кнопки.
В OnInitDialog проведем инициализацию:
BOOL CTest5Dlg::OnInitDialog() { m_Ed1 ="Hello"; m_Ed2 ="Word"; CDialog::OnInitDialog(); ...... };
У нас есть функция с именем UpdateData(), которая направляет поток данных в зависимости от переданного ей параметра.
Пишем код для кнопок.
void CTest5Dlg::OnButton1() { UpdateData(TRUE); } void CTest5Dlg::OnButton2() { UpdateData(FALSE); }
А теперь пробуем изменить текст в первом элементе.
И нажмем кнопку “В элементы”. Данные вернутся на свое место.
Можете изменить и нажать "в переменные". Потом полностью в стереть и нажать "в элементы" и измененные данные вернутся. Тоже самое, то есть сохранение данных происходит при нажатии на OK, и именно эта функция вызывается. Используя этот метод Вы всегда можете создать кнопку Reset, которая вернет все к начальному состоянию в момент вызова диалога.