>
Тут докладно зупинимося на механізмі В«перегортанняВ» сторінок, тобто на переході до попередньої і подальшої сторінкам. При роботі з певними елементами меню, кнопками панелі інструментів або при натисканні спеціальних віртуальних клавіш у програмі здійснюється В«перегортанняВ» однієї сторінки вперед або назад. При цьому управління передається членам-функцій класу документа OnPagedown () і OnPageup (). Ці функції викликають члени-функції класу книги SetNextActivePage () і SetPreviousActivePage (), які після поновлення номера активної сторінки викликають закриту член-функцію класу книги RenewCtrls (). Ця функція викликає глобальні функції RenewTree () і RenewList (), передаючи їм в якості аргументів покажчики на елементи управління, що відповідають за відображення книги на екрані, і покажчик на об'єкт книги. Дані глобальні функції, отримавши доступ до активної сторінці через покажчик на об'єкт книги, оновлюють відображення змісту і сторінки у відповідності з номером активної сторінки.
Для реалізації залежності між елементом переглядового вікна дерева змісту і класу книги в класі сторінки визначено атрибут - покажчик на елемент дерева:
class CPage: public CObject
{
private:
HTREEITEM m_TreeItem;
};
Даний покажчик дозволяє при клацанні миші по номеру сторінки у змісті відображати сторінку з цим номером, а при В«ГортанніВ» сторінок - виділяти у змісті номер активної сторінки. Останнє здійснюється через виклик вищезгаданої функції RenewTree ():
void RenewTree (CTreeCtrl * TreeCtrl, CBookClass * Book)
{
CPage * Page = (CPage *) Book-> GetPages () -> GetAt (Book->
GetActivePage ());
TreeCtrl-> Select (Page-> GetTreeItem (), TVGN_CARET);
}
Аналіз отриманих результатів та висновки
У ході вивчення об'єктно-орієнтованих можливостей мови C + + була розроблена програма, що активно використовує об'єктно-орієнтовані технології створення програмних комплексів, включаючи Microsoft Foundation Classes. Дані технології дозволяють у короткий термін за рахунок економії часу на етапах проектування та реалізації об'єктної моделі створювати досить складні програмні продукти з багатими функціональними можливостями. Це обумовлено двома причинами:
1) Немає необхідності В«винаходити велосипедВ», тобто реалізовувати стандартні функції, властиві будь-якому додатку для Windows. Вся увага програміст приділяє безпосередньо реалізації особливостей даної програми та створенню об'єктної моделі даних, з якою доводиться працювати розроблюваному додатком.
2) Бібліотека Microsoft Foundation Classes пропонує програмісту використовувати деякі стандартні для цієї бібліотеки концепції програмування, такі як документ/подання , серіалізация даних і т.д. Т.ч. Середа Visual C + + є не тільки інструментальної середовищем розробки програм,...