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 вам становятся доступны новые органы управления – многостраничные диалоговые панели, поля для просмотра видеоинформации и т. д.