Шаг 38 - Как работает DDX

Итак, DDX. Еще раз это механизм передачи данных от элемента управления к переменной и назад.

38_1.gif (5398 b)

Стандартный механизм DDX работает так. При создании объекта диалога производится начальная инициализация в конструкторе.

CTest5Dlg::CTest5Dlg(CWnd* pParent /*=NULL*/)
	: CDialog(CTest5Dlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CTest5Dlg)
	m_Ed1 = _T("");
	m_Ed2 = _T("");
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a 
	// subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

После этого при выводе диалога на экран производится подготовка в функции OnInitDialog перегруженного класса. А в момент вызова OnInitDialog базового класса производится передача данных в элементы управления.

BOOL CTest5Dlg::OnInitDialog()
{
	.......
	CDialog::OnInitDialog();
	.......
}

Вы можете править данные в элементе управления и ничего не будет происходить. Данные хранятся в элементе управления. Дальше два стандартных выхода. Либо нажать Cancel и тогда данные не будут перемещены в переменные, или вызвать OK. При вызове OK данные будут перемещены из элемента управления в переменные класса диалога.


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