Итак, данные можно инициализировать в конструкторе объекта диалога. Конечно, если элементы управления были связаны с переменными используя DDX. Есть диалог с двумя элементами редактирования и есть пункт меню, который вызывает этот диалог.
void CTest6Doc::OnTestTest()
{
CMyDialog cm;
cm.DoModal();
}
Мы с Вами проведем начальную инициализация в конструкторе диалога:
CMyDialog::CMyDialog(CWnd* pParent /*=NULL*/)
: CDialog(CMyDialog::IDD, pParent)
{
//{{AFX_DATA_INIT(CMyDialog)
m_Ed1 = _T("Hello");
m_Ed2 = _T("Word");
//}}AFX_DATA_INIT
}
Запустим и посмотрим:

Отлично данные поместились в диалог. Но вот есть тонкость одна. Сейчас Вы можете открывать и закрывать диалог. Можете менять данные и нажимать ОK. При запуске данные будут всегда новые, так как каждый раз объект диалога создается заново. А вот если есть объект в описании класса документа:
class CTest6Doc : public CDocument
{
protected: // create from serialization only
CTest6Doc();
DECLARE_DYNCREATE(CTest6Doc)
// Attributes
public:
CMyDialog cm;
// Operations
public:
........
}
void CTest6Doc::OnTestTest()
{
cm.DoModal();
}
То теперь данные будут сохраняться после нажатия на кнопку OK.