Только начал изучать 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