Чтение онлайн

на главную - закладки

Жанры

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

Фролов Григорий Вячеславович

Шрифт:
Класс документа приложения – CDaterDoc

Класс документа приложения 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:

CDaterView::CDaterView : CRecordView(CDaterView::IDD) {

 //{{AFX_DATA_INIT(CDaterView)

 m_pSet = NULL;

 //}}AFX_DATA_INIT

 // TODO:

}

Деструктор класса CMainFrame не содержит программного кода:

CDaterView::~CDaterView {}

Метод PreCreateWindow класса CDaterView

Метод PreCreateWindow вызывает метод PreCreateWindow базового класса CRecordView и выполняет обработку по умолчанию:

BOOL CDaterView::PreCreateWindow(CREATESTRUCT& cs) {

Поделиться:
Популярные книги

Сама себе хозяйка

Красовская Марианна
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Сама себе хозяйка

Сердце Дракона. Том 11

Клеванский Кирилл Сергеевич
11. Сердце дракона
Фантастика:
фэнтези
героическая фантастика
боевая фантастика
6.50
рейтинг книги
Сердце Дракона. Том 11

Первый среди равных. Книга IV

Бор Жорж
4. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Первый среди равных. Книга IV

Неучтенный. Дилогия

Муравьёв Константин Николаевич
Неучтенный
Фантастика:
боевая фантастика
попаданцы
7.98
рейтинг книги
Неучтенный. Дилогия

Мастер Разума IV

Кронос Александр
4. Мастер Разума
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Мастер Разума IV

Авиатор: назад в СССР

Дорин Михаил
1. Авиатор
Фантастика:
попаданцы
альтернативная история
5.25
рейтинг книги
Авиатор: назад в СССР

Кадры решают все

Злотников Роман Валерьевич
2. Элита элит
Фантастика:
боевая фантастика
попаданцы
альтернативная история
8.09
рейтинг книги
Кадры решают все

Плеяда

Суконкин Алексей
Проза:
военная проза
русская классическая проза
5.00
рейтинг книги
Плеяда

Потусторонний. Книга 2

Погуляй Юрий Александрович
2. Господин Артемьев
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Потусторонний. Книга 2

Ученик. Книга 4

Первухин Андрей Евгеньевич
4. Ученик
Фантастика:
фэнтези
5.67
рейтинг книги
Ученик. Книга 4

Законник Российской Империи. Том 3

Ткачев Андрей Юрьевич
3. Словом и делом
Фантастика:
городское фэнтези
альтернативная история
аниме
дорама
5.00
рейтинг книги
Законник Российской Империи. Том 3

Ваше Сиятельство 7

Моури Эрли
7. Ваше Сиятельство
Фантастика:
боевая фантастика
аниме
5.00
рейтинг книги
Ваше Сиятельство 7

Война

Валериев Игорь
7. Ермак
Фантастика:
боевая фантастика
альтернативная история
5.25
рейтинг книги
Война

Младший сын князя. Том 4

Ткачев Андрей Юрьевич
4. Аналитик
Фантастика:
фэнтези
аниме
5.00
рейтинг книги
Младший сын князя. Том 4