#39;єкти-вистави, які представляють собою ті ж вікна, дозволяють користувачеві переглядати дані на екрані і редагувати їх відповідно логіці роботи програми. Об'єкт класу уявлення містить покажчик на об'єкт класу документа, який використовується для доступу до членам-змінним цього класу, де власне і зберігаються дані.
Значення термінів книга, розділ, глава, сторінка, рядок і зміст очевидні і не підлягають поясненню.
Визначення атрибутів об'єктів
У класі документа визначений відкритий атрибут - об'єкт класу CBookClass:
class CBookDoc: public CDocument
{
public:
CBookClass m_Book;
};
В клас документа включений відкритий член з тим, щоб не ускладнювати доступ до нього з об'єктів класів уявлення. Визначення атрибутів інших класів відповідають класичному об'єктно-орієнтованого підходу, який вимагає включати в клас закриті або захищені члени-змінні і відкриті члени-функції зчитування і модифікації цих змінних.
Класи книги, розділу, глави та сторінки мають закриту член-змінну m_Name класу CString. Т.к. книга має деревоподібну структуру, то класи книги, розділу і глави відповідають гілкам дерева, а клас сторінки - листу цього дерева. Тому класи-гілки містять член-змінну класу колекції дрібніших об'єктів (книга містить колекцію розділів, глава - колекцію сторінок), а сторінка містить член-змінну - масив об'єктів класу CString (рядки цієї сторінки). Класи розділу і глави містять члени-змінні типу WORD - номери першої та останньої сторінок, що належать даному розділу або чолі. Клас розділу містить також номери першої та останньої глав, що належать цьому розділу.
У класі книги визначений закритий атрибут типу WORD, який зберігає номер сторінки, яка в даний момент часу проглядається користувачем. Крім того, в класі книги визначені члени-покажчики на елементи управління CTreeCtrl і CListCtrl, що дозволяють здійснювати при читанні книги перехід від однієї сторінки до іншої. Для цієї ж цілі в класі сторінки визначена член-змінна - вказівник на елемент дерева - Типу HTREEITEM. p> Для перебору всіх сторінок книги зручно користуватися не деревом, а масивом сторінок. Тому в класі книги визначена член-змінна - масив покажчиків на сторінки книги - MFC-класу CPtrArray. b>
Визначення методів класів
Крім відкритих членів-функцій, що здійснюють читання і модифікацію закритих членів-змінних, у класах, які у програмі, визначено й інші члени-функції.
У класі книги визначені відкриті члени-функції, здійснюють перехід при читанні книги до попередньої і подальшою сторінкам. Крім того, в цьому класі визначена закрита член-функція RenewCtrls (), яка викликається вищезгаданими функціями при переході до іншої сторінки. Дана функція викликає глобальні функції RenewTree () і RenewList (), які оновлюють візуальний зміст уявлень змісту і сторінк...