Визуальное программирование и MFC



         

Модальная диалоговая панель


Итак, первым этапом работы с диалоговыми панелями является создание в файле ресурсов приложения шаблона новой диалоговой панели с каким-либо идентификатором (например, IDD_DIALOG1) и изменение его для конкретных целей (например, добавление поля редактирования с идентификатором IDC_EDIT1 и кнопки с идентификатором IDC_CLEAR).

Затем при помощи средства ClassWizard можно создать класс диалога (например, CDlg), производный от базового класса CDialog и организующий работу диалоговой панели (ClassWizard сохраняет определение и реализацию этого класса в файлах с расширениями *.cpp и *.h).

При помощи инструментов ClassWizard можно добавить в класс диалоговой панели заготовки методов-обработчиков оконных сообщений, сообщений от органов управления (например, нажатие на кнопки “OK”, “Cancel” и “Clear”) и др. Для обеспечения процесса обмена данными средствами ClassWizard можно связать элементы управления с переменными (например поле редактирования с идентификатором IDC_EDIT1 с переменной str класса CString).

Класс диалоговой панели и его реализация

В итоге выполнения перечисленных действий по созданию класса диалога средство ClassWizard сгенегрирует следующие файлы:

Файл dlg.h // dlg.h : header file //

#include "resource.h"

///////////////////////////////////////////////////////////////////////////// // CDlg dialog

class CDlg : public CDialog { // Construction public: CDlg(CWnd* pParent = NULL); // standard constructor

// Dialog Data //{{AFX_DATA(CDlg) enum { IDD = IDD_DIALOG1}; CString m_Str; //}}AFX_DATA

// Implementation protected: // DDX/DDV support virtual void DoDataExchange(CDataExchange* pDX);

// Generated message map functions //{{AFX_MSG(CDlg) afx_msg void OnClickedClear(); virtual void OnCancel(); virtual void OnOK(); virtual BOOL OnInitDialog(); //}}AFX_MSG DECLARE_MESSAGE_MAP() };

Файл dlg.cpp // dlg.cpp : implementation file // #include <afxwin.h> #include "resource.h" #include "dlg.h"

#ifdef _DEBUG #undef THIS_FILE static char BASED_CODE THIS_FILE[] = __FILE__; #endif




Содержание  Назад  Вперед