void CMyDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, 12345, m_string);
}
BOOL CMyDlg::OnInitDialog()
{
m_edit.Create(WS_CHILD | WS_VISIBLE | WS_BORDER,
CRect(10, 10, 100, 100), this, 12345);
CDialog::OnInitDialog();
...
}
Помогите, плиз!!!
Создаю объект наследника Edit через Create(руками :) ). В MyDialog.DoDataExchange связываю с ним переменную типа стринг.
Далее вижу эксепшен. :(
Переопределение ф-ции DoDataExchange в наследнике Edit тоже не помогает. При создании самого объекта эдита в DoDataExchange не заходит.
При вызове из класса диалога m_edit.UpdateData() заходит MyEdit.DoDataExchange вылетает тот же эксепшен.
Не пойму где собака зарыта:)
Делай Create до CDialog::OnInitDialog(); - тут как раз и происходит первое обращение к DoDataExchange.
после CMyDlg::OnInitDialog().
Блин ну и макрософт намудрило!
REFOT огромное спасибо!!!
п.с извратился и обошел DDX_Text(...) используя SetWindowText и GetWindowText.