Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛабробС++1к.docx
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
1.06 Mб
Скачать

Додаток1.Пояснення архітектури документ/облік

Архітектура "документ/вигляд" (іноді її називають "документ/представлення") надає можливість поєднати дані та їх відтворення на екрані. Вона реалізована у вигляді класів, які створюються майстром AppWizard.

Загальна характеристика архітектури "документ/вигляд".

У каркасі MFC- додатку документ - це об’єкт, що містить дані додатку. Вигляд (представлення) - це віконний об’єкт, який найчастіше буває поєднаний з клієтською областю вікна на екрані, за допомогою якого користувач взаємодіє з даними документу.

Таке логічне відокремлення даних та їх візуального представлення надає можливість відтворювати документ різними способами, поєднавши його з кількома представленнями. Наприклад, у Microsoft Word доступні три вигляди відтворення одного й того ж документу: звичайний, розмітка сторінки, структура документу. Окрім того, зміни, внесені в одному представленні, відтворюються у всіх інших.

Архітектура "документ/вигляд" спрощує процес відображення даних. Можна конструювати власне представлення, перевантаживши функцію, яка його відображає, обробники повідомлень від клавіатури, миші та пунктів меню. Використання ж готових представлень, основаних на елементах керування, дає змогу створити додаток, схожий на Провідник Windows, - з елементами перегляду дерева та списку, які розташовані у розділеному на дві частини вікні. Представлення, основане на полі введення з форматуванням, можна використовувати для реалізації текстового редактора.

Архітектура "документ/вигляд" спрощує друкування та попередній перегляд даних; при цьому застосовується та ж функція відображення, що й для виведення інформації на екран. У цій архітектурі передбачені допоміжні засоби для збереження та відкриття документів. Даний процес, який називається серіалізацією, дає змогу зберігати дані у форматі об’єкту, який використовується додатком користувача, а також у форматі довільного іншого б’єкту, успадкованого від класу CObject.

Архітектура "документ/представлення" має велике значення, оскільки забезпечує каркас великою кількістю можливостей для роботи з документами додатку. Проте можна працювати з MFC, не застосовуючи її, оскільки її використання призводить до деякого спаду продуктивності та збільшує розмір додатку.

Іноді архітектура "документ/вигляд" непотрібна. Наприклад, для додатку, який стискає текстові файли, потрібна лише діалогова панель з полем для введення назви файлу та індикатор виконання операції. Головне вікно та представлення не потрібні, оскільки переваги архітектури "документ/вигляд" не будуть помітні. У даному випадку можна користуватися каркасом додатку на базі діалогового вікна, створеним майстром AppWizard.

Розглянемо об’єкти, які застосовуються в архітектурі «документ/вигляд».

AppWizard здатний генерувати каркас додатку на основі архітектури "документ/вигляд", який пізніше можна змінити.

Цей каркас реалізує документи та представлення засобами класів, похідних від CDocument та CView. Для роботи додатку окрім них ще потрібні класи CWinApp, CFrameWnd та CDocTemplate.

Об’єкти та поєднані з ними класи додатку на базі архітектури "документ/вигляд"

Обєкт

Клас та його призначення

Документ

Похідний від CDocument. Визначає дані додатку

Вигляд (Представлення)

Похідний від CView. Служить для відтворення даних та взаємодії з користувачем

Вікно-рамка

Похідний від CFrameWnd. Представлення відтворюються всередині таких вікон. У SDI-додатках (однодокументних) є головним вікном

Шаблон документу

Похідний від CDocTemplate. Керує створенням документів, представлень та вікон. Один клас шаблону документу відповідає за всі відкриті документи одного типу

Всі об’єкти додатку на базі архітектури "документ/вигляд" реагують на дії користувача сумісно, оскільки вони поєднані між собою командами та повідомленнями.

Стисла характеристика деяких з перелічених об’єктів.

Шаблони документу створюються та керуються об’єктом додатку. Однією з головних задач, які виконує функція InitInstance(), - це створення одного чи кількох шаблонів документу відповідного типу.

При створенні шаблон документу поєднує клас документу з ресурсами (меню, значками та ін.), вікном-рамкою та представленням. Шаблон додається до додатку засобами функції CWinApp::AddDocTemplate().

У SDI- додатку користувач переглядає документ та працює з ним за допомогою представлення, яке знаходиться у головному вікні, похідному від CFrameWnd. На рисунку 1 показані взаємозв’язки об’єктів SDI- додатку.

Документ представлений у додатку класом, похідним від CDocument. Він зберігає та завантажує дані, а також керує ними. У ньому є функції для доступу до даних та роботи з ними. Для взаємодії між документами та представленнями кожен об’єкт документу містить список поєднаних з ним представлень, доступ до яких можна отримати через функції CDocument::GetFirstViewPosition() та CDocument::GetNextView().

Вигляд(Представлення). Об’єкт вигляду відповідає за роботу з клієнтською областю додатку. Він відображає інформацію, що міститься у документі, та надає можливість користувачу вводити дані. З документом дозволено поєднувати кілька представлень, але представлення може належати лише одному документу. Якщо майстру AppWizard не вказати спеціалізоване представлення, тоді представлення у додатку користувача буде основане на класі CView. Окрім нього існують ще класи CScrollView (з можливістю прокрутки вікна), CListView та CTreeView (дають змогу використовувати для відображення даних елементи перегляду списку та дерева відповідно).

Функція GetDocument() з класу CView дає змогу отримати вказівник, поєднаний з представленням об’єкту документу.