CMainFrame;
DECLARE_DYNCREATE(CMainFrame)
// Attributes
public:
// Operations
public:
// Overrides
//{{AFX_VIRTUAL(CMainFrame)
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
//}}AFX_VIRTUAL
// Implementation
public:
virtual ~CMainFrame;
#ifdef _DEBUG
virtual void AssertValid const;
virtual void Dump(CDumpContext& dc) const;
#endif
protected:
CStatusBar m_wndStatusBar;
CToolBar m_wndToolBar;
protected:
//{{AFX_MSG(CMainFrame)
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
//}}AFX_MSG
DECLARE_MESSAGE_MAP
};
Мы не стали приводить исходные тексты методов класса CMainFrame, так как они практически не отличаются от методов класса CMainFrame любого другого однооконного приложения созданного MFC AppWizard.
Конструктор и деструктор класса CMainFrame не содержат программного кода.
Метод PreCreateWindow вызывает метод PreCreateWindow базового класса CFrameWnd и выполняет обработку по умолчанию.
Метод OnCreate класса CMainFrame создает главное окно приложения, и размещает в нем панель управления IDR_MAINFRAME и стандаартную панель состояния.
Методы AssertValid и Dump класса CMainFrame могут использоваться при отладке приложения.
Класс документа приложения 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
};
Конструктор и деструктор класса CMainFrame не содержжат программного кода.
Метод OnNewDocument вызывается, когда надо создать новый документ для приложения. Метод OnNewDocument приложения Dater вызывает метод OnNewDocument базового класса CDocument:
BOOL CDaterDoc::OnNewDocument {
if (!CDocument::OnNewDocument) return FALSE;
// TODO:
return TRUE;
}
Методы AssertValid и Dump класса CMainFrame могут использоваться при отладке приложения.
Большой интерес представляет класс окна просмотра приложения 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