Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT | страница 67



> afx_msg void OnDefault();

> virtual void OnCancel();

> virtual void OnOK();


> // Макрокоманда необходима, так как класс

> // CMyDialog обрабатывает сообщения от органов

> // управления диалоговой панели

> DECLARE_MESSAGE_MAP()

>};


>// Конструктор клаасса CMyDialog

>CMyDialog::CMyDialog() : CDialog(CMyDialog::IDD) {

> // Инициализируем переменную 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;

>}


Создайте файл ресурсов MFDlgRes.rc и добавьте в него новую диалоговую панель. На экране откроется окно редактора диалоговой панели и панель с инструментами Controls (рис. 2.28). По умолчанию новая диалоговая панель называется Dialog и содержит две кнопки OK и Cancel.

Вы можете добавлять в диалоговую панель другие органы управления – кнопки, переключатели, поля редактирования, статические текстовые поля, рисунки. Более того в Visual C++ версии 4.0 вам становятся доступны новые органы управления – многостраничные диалоговые панели, поля для просмотра видеоинформации и т. д.