Шаг 42 - Когда напрямую внешнюю инициализацию провести нельзя

Когда связь через DDX производится с помощью элемента управления, а не переменной:

class CMyDialog : public CDialog
{
// Construction
public:
	CMyDialog(CWnd* pParent = NULL);   // standard constructor

	// Dialog Data
	//{{AFX_DATA(CMyDialog)
	enum { IDD = IDD_DIALOG1 };
	CEdit	m_Ed1;
	CString	m_Ed2;
	//}}AFX_DATA
.........
};

Пробуем произвести инициализацию:

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

Несмотря на то, что код написан правильно и программа соберется.

42_1.gif (8606 b)

В программе находится логическая ошибка, которая приводит к исключению.

42_2.gif (6136 b)

Связано это с тем, что элемент управления еще не создан и попытка передачи данных не корректная.


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