Класс документа приложения CDaterDoc представляет документ, с которым работает приложение. В него входит элемент m_daterSet класса CDaterSet, также определенного в нашем приложении, который представляет запись базы данных.
Кроме этого элемента в классе CDaterDoc определены конструктор, деструктор, метод OnNewDocument, а также методы AssertValid и Dump:
class CDaterDoc : public CDocument {
protected:
CDaterDoc;
DECLARE_DYNCREATE(CDaterDoc)
// Attributes
public:
CDaterSet m_daterSet;
// Operations
public:
// Overrides
//{{AFX_VIRTUAL(CDaterDoc)
public:
virtual BOOL OnNewDocument;
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CDaterDoc;
#ifdef _DEBUG
virtual void AssertValid const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
//{{AFX_MSG(CDaterDoc)
//}}AFX_MSG
DECLARE_MESSAGE_MAP
};
Конструктор
и деструктор класса CDaterDoc
Конструктор и деструктор класса CMainFrame не содержжат программного кода.
Метод PreCreateWindow класса CDaterDoc
Метод OnNewDocument вызывается, когда надо создать новый документ для приложения. Метод OnNewDocument приложения Dater вызывает метод OnNewDocument базового класса CDocument:
BOOL CDaterDoc::OnNewDocument {
if (!CDocument::OnNewDocument) return FALSE;
// TODO:
return TRUE;
}
Методы AssertValid и Dump класса CDaterDoc
Методы AssertValid и Dump класса CMainFrame могут использоваться при отладке приложения.
Класс окна просмотра приложения – CDaterView
Большой интерес представляет класс окна просмотра приложения CDaterView. В нем содержится указатель m_pSet на объект класса CDaterSet, который представляет запись базы данных. Обратите внимание, что определение указателя находится внутри комментариев вида //{{AFX_DATA. Эти комментарии используются MFC ClassWizard:
class CDaterView : public CRecordView {
protected:
CDaterView;
DECLARE_DYNCREATE(CDaterView)
public:
//{{AFX_DATA(CDaterView)
enum { IDD = IDD_DATER_FORM };
CDaterSet* m_pSet;
//}}AFX_DATA
// Attributes
public:
CDaterDoc* GetDocument;
// Operations
public:
// Overrides
//{{AFX_VIRTUAL(CDaterView)
public:
virtual CRecordset* OnGetRecordset;
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
virtual void DoDataExchange(CDataExchange* pDX);
virtual void OnInitialUpdate;
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CDaterView;
#ifdef _DEBUG
virtual void AssertValid const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
//{{AFX_MSG(CDaterView)
//}}AFX_MSG
DECLARE_MESSAGE_MAP
};
Помимо
конструктора и деструктора в классе CDaterView определен целый ряд методов – PreCreateWindow, GetDocument, OnGetRecordset, DoDataExchange, OnInitialUpdate, а также AssertValid и Dump. Опишем наиболее важные из этих методов более подробно.
Конструктор и деструктор класса CDaterView
Конструктор класса CMainFrame вызывает конструктор базового класса CRecordView и передает ему в качестве параметра символ IDD, определенный как идентификатор шаблона диалоговой панели IDD_DATER_FORM, используемого окном просмотра.
Конструктор CMainFrame также приваивает указателю m_pSet значение NULL: