// Включаемый файл для MFC
#include <afxwin.h>
#include "resource.h"

//===================================================== 
// Класс CMFDialogApp - главный класс приложения 
//===================================================== 
class CMFDialogApp : public CWinApp
{
public:
	// Мы будем переопределять метод InitInstance,
	// предназначенный для инициализации приложения
	virtual BOOL InitInstance();
};
 
// Создаем объект приложение класса CMFDialogApp
CMFDialogApp MFDialogApp;
 
//===================================================== 
// Класс CMyDialog - класс диалоговой панели
//===================================================== 
class CMyDialog : public CDialog
{
public:
	CMyDialog();

	CString	m_Text;

protected:
	virtual void DoDataExchange(CDataExchange* pDX);
	
	// Обработчики сообщений от кнопок диалоговой панели
	afx_msg void OnDefault();
	virtual void OnCancel();
	virtual void OnOK();

	// Макрокоманда необходима, так как класс 
	// CMyDialog обрабатывает сообщения от органов 
	// управления диалоговой панели 
	DECLARE_MESSAGE_MAP()
};

// Конструктор клаасса CMyDialog
CMyDialog::CMyDialog() : CDialog("DIALOGPANEL")
{
	// Инициализируем переменную m_Text 
	m_Text = "";
}

//===================================================== 
// Метод DoDataExchange класса CMyDialog
//===================================================== 
void CMyDialog::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);

	DDX_Text(pDX, IDC_EDIT, m_Text);
}

//===================================================== 
// Таблица сообщений класса CMyDialog
//===================================================== 
BEGIN_MESSAGE_MAP(CMyDialog, CDialog)
	ON_BN_CLICKED(IDC_DEFAULT, OnDefault)
END_MESSAGE_MAP()

//===================================================== 
// Метод OnDefault класса CMyDialog
//===================================================== 
void CMyDialog::OnDefault() 
{
	// TODO:
	m_Text = "Start Text";
	UpdateData(FALSE);
	MessageBeep(0);
}

//===================================================== 
// Метод OnCancel класса CMyDialog
//===================================================== 
void CMyDialog::OnCancel() 
{
	// Подаем звуковой сигнал
	MessageBeep(0);

	// Вызываем метод OnCancel базового класса
	CDialog::OnCancel();
}

//===================================================== 
// Метод OnOK класса CMyDialog
//===================================================== 
void CMyDialog::OnOK() 
{
	// Вызываем метод OnOK базового класса
	CDialog::OnOK();
	
	// Подаем звуковой сигнал
	MessageBeep(0);
}

//===================================================== 
// Метод InitInstance класса CMFDialogApp
//===================================================== 
BOOL CMFDialogApp::InitInstance()
{
	// Создаем объект класса CMyDialog
	CMyDialog dlgTest;

	m_pMainWnd = &dlgTest;

	// Отображаем на экране модельную диалоговую панель
	dlgTest.DoModal();

	// Отображаем на экране значение переменной m_Text,
	// ввходящей в класс CMyDialog
	AfxMessageBox(dlgTest.m_Text);
	return FALSE;
}
