ann_nef, во-первых, сразу переходим на ТЫ.
Во-вторых. Ок. Хоть это и противоречит принципам. Но я так понимаю, что "горит".
Поэтому немного теории.
Итак, ф-я UpdateData предназначена ТОЛЬКО для двунаправленного обмена данными между контролами и полями данных в классе диалога. Проще говоря, у тебя есть объёкт типа контрол (например СEdit), а есть мембер типа CString, значение которого ты используешь в программе. Так вот UpdateData обеспечивает, в момент вызова, обмен данными между этими объектами. Направление зависит от параметра. Ну и, если посмотреть детально, то эта ф-я вызывает в конечном итоге ф-ю DoDataExchange. Использовать или нет? Основная "проблема" - это необходимость простой организации обмена данных между контролами и полями данных. Очень часто (неправильно) используют эту ф-ю в хэндлах типа OnChange и тп. Поскольку эта ф-я отвечает за апдейт ВСЕХ контролов, то и вызывать её следует по какому-нить глобальному событию. Например, нажатию кнопки. Конечно, её можно вызывать и по OnChange, нужно только внимательно оценить все последствия и влияние на сам контрол или другие контролы. В "простых" (в смысле логики взаимодействия между контролами) диалогах, когда нужно только считать все данные введённые пользователем, например перед непосредственной обработкой этих данных, использование ф-ии UpdateData является самым простым и надёжным способом.
Ну и следствие - никаких апдейтов графиков и уж тем более отрисовки чего бы там ни было.
Вся графическая инфа отрисовывается ТОЛЬКО (ИСКЛЮЧИТЕЛЬНО!!!) в ф-ции OnPaint/OnDraw либо контекста самого диалога (что не есть гут), либо в контексте какого-нить контрола. Обычно для таких целей используется CStatic, но можно сделать и своё окошко непосредственно от CWnd. Если конечно диалог не используется только в качестве интрефейса ввода данных. Этому были посвящёны мои второй и третий вопросы.
В принципе ситуация ясна, не хватает деталей. Фраза "вывод на экран в виде графика измеренные значения - использую GDI" требует конкретики. Да и вобще, что значит "ввожу параметры для измерений - использую MFC", а потом что? Без MFC? Что вобще за приложение? Диалог, SDI? Если можно, выложи скрин с него.
Ну а общий рецепт такой:
1. В Диалоге вводим данные.
2. По событию (например, нажатие кнопки) вызываем UpdateData(TRUE)
2.а. UpdateData перегоняет эти данные в мемберы (m_editValue123 -> m_stValue123, m_editValue345 -> m_nValue345)
3. Вызываем ф-ю апдейта графики Invalidate или InvalidateRect, если нужно обновить только часть всего рисунка.
4. Заранее предусматриваем использование мемберов в ф-ции OnPaint (OnDraw). Например: dc.PolylineTo(bufI,1024-m_nValue345);
Типа в коде:
void CMyDialog::OnMyBtnClick()
{
UpdateData(TRUE);
Invalidate();
}
Собственно говоря, это и есть ответ на вопрос темы, но чтобы это решение работало, необходимо его подготовить.