Проблемы с DDX в VS .NET 2003
От: Dimastiy  
Дата: 30.09.04 07:19
Оценка:
Только начал изучать Visual C++ и сразу столкнулся с такой проблемой:
Нужно было в диалоге из поля Edit положить значение этого поля в переменную и вывести в MessgeBox (так сказать учебный пример).
С помощью "Add Member Variable Wizard" создал переменную m_strMessageText (тип CString), далее попытался вывести значение этого самого Edit


void CHelloDialogDlg::OnBnClickedOk()
{
    UpdateData(true);
    AfxMessageBox(m_strMessageText);
}


Проблема была в том, что сообщение было пустое. При дальнейшем изучении выяснил, что мастер не добавил нужный код:


void CHelloDialogDlg::DoDataExchange(CDataExchange* pDX)
{
    DDX_Text(pDX, IDC_EDIT1, m_strMessageText);  // Вот эту строку пришлось добавлять руками, 
                                                      // хотя как я понимаю, она должна создаваться автоматически
    CDialog::DoDataExchange(pDX);
}



т.е. получилось, что UpdateData ничего не делала, так как не было вызова функции DDX_Text.

Может есть способ заставить VS делать это автоматически или у меня версия какая-то дефективная?

30.09.04 11:50: Перенесено модератором из 'C/C++' — Odi$$ey
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.