ого класу. Від класу mdTrgt, через клас WinThrd, породжується, напевно, єдиний з найбільш важливих класів, звернення до якого в MF-програмах відбувається безпосередньо: Win. Це один з фундаментальних класів, оскільки призначений для створення самого додатка.
1.1.1 I функції
Більшість функцій, викликаються в MF-програмі, є членами одного з класів, визначених в бібліотеці. Більшість функцій I доступні через функції-члени MF. Тим не Проте, завжди можна звертатися до функцій I безпосередньо. Іноді це буває необхідним, але все ж в більшості випадків зручніше використовувати функції-члени MF.
1.1.2 Глобальні функції F
В бібліотеці є ряд глобальних функцій. Всі вони починаються з префікса f. Коли MF тільки розроблялася, то проект називався F, litin Frmwrk. Після низки суттєвих змін F була перероблена в MF, але колишня назва збереглося в багатьох ідентифікаторах бібліотеки і в назвах файлів. Наприклад, дуже часто використовується функція fMssgB (), яка відображає заздалегідь певне вікно повідомлення. Але є і член-функція MssgB (). Таким чином, часто глобальні функції перекриваються функціями-членами.
Всі MF-програми включають заголовний файл FWIN.H. У ньому, а також в різних допоміжних файлах, містяться описи класів, структур, змінних і інших об'єктів MF. Він автоматично підключає більшість заголовків файлів, що відносяться до MF, в тому числі і WINDOWS.H, в якому визначені всі функції Windows I та інші об'єкти, які використовуються при традиційному програмуванні на С і В«чистомуВ» I.
Windows взаємодіє з програмою, посилаючи їй повідомлення.
програма трикутник площа прямокутний
1.1.3 Цикл повідомлень
Всі додатки Windows повинні організувати так званий цикл повідомлень (зазвичай усередині функції WinMin ()). В цьому циклі кожне необроблене повідомлення повинно бути вилучено з черги повідомлень даного додатка і передано назад у Windows, яка потім викликає функцію вікна програми з даним повідомленням в якості аргументу. У традиційних Windows-програмах необхідно самостійно створювати і активізувати такий цикл. При використанні MF це також виконується автоматично. Однак важливо пам'ятати, що цикл повідомлень все ж існує. Він є невід'ємною частиною будь-якого додатку Windows.
1.1.4 Створення додатка з допомогою Visul + +
Про засади устрою додатка розповідалося вище. Тепер розглянемо, як воно створюється за допомогою Visul + +. Спочатку розберемо одну важливу поняття - проект. До цих пір додаток розглядалося, як тільки як сукупність об'єктів базових і похідних класів. Але для забезпечення роботи додатка потрібно щось більше - поряд з описом класів необхідно опис ресурсів, пов'язаних з додатком, потрібна довідкова система і т.п. Термін В«проектВ» якраз і використовується, коли мається на увазі такий загальний погляд на додаток.
У середовищі Visul + + можна будувати різні типи проектів. Такі проекти після їх створення можна компілювати і запускати на виконання. Фірма Mirsft розробила спеціальний інструментарій, що полегшує і прискорює створення проектів у середовищі Visul + +. Наприклад, майстер MF Wizrd () дозволяє створити проект, Windows-додатка яке має однодокументних, багатодокументний або діалоговий інтерфейс і використовує бібліотеку MF.
1.1.5 Інструментальне засіб - lssWizrd (майстер-класів)
Створюваний остов додатка складений так, що в подальшій роботі з проектом можна використовувати інше інструментальне засіб - lssWizrd (Майстер-класів), призначене для створення остовів нових похідних класів. Ще одне основне призначення lssWizrd в тому, що він створює остови для перевизначати методи. Він дозволяє показати всі повідомлення, що приходять класу, і створити кістяк обробника будь-якого з цих повідомлень. Це тільки дві основні функції lssWizrd. Він не всесильний, але його можливості досить великі.
Засіб lssWizrd надає широкий спектр послуг. Він дозволяє не тільки додавати до існуючого класу нові методи і дані.
Створення нового класу.
За допомогою lssWizrd можна додати новий клас, створений на основі базових класів. В якості базового класу можна використовувати класи, успадковані від класу mdTrgt або класу Rrdst. Для успадкування класів від інших базових класів використовувати засоби lssWizrd не можна. Такі класи треба створювати вручну, безпосередньо в текстовому редакторі.
Отримана заготовка класу повністю працездатна. Її можна доповнити за своїм розсудом новими методами і даними. Цю роботу можна виконати вручну, але набагато краще і простіше скористатися послугами lssWizrd. За рахунок використання lssWizrd процедура створення власного класу значно прискорюється і зменшується ймовірність зробити помилку під час оголошення методів.
Включення в клас нових методів.
Дуже зручно використовувати lssWizrd для включення до складу класу нових методів. Можна додавати до класу методи, що служать для обробки повідомлень Windows і команд від об'єктів, а також методи, перевизначати віртуальні методи базових класів.
lssWizrd не тільки дозволяє додати в клас нові методи, але й видалити їх. lssWizrd самостійно видалить оголошення методу з класу.
Включення в клас нових елементів даних.
lssWizrd дозволяє включати в клас не тільки нові методи, але й елементи даних, пов'язані з полями діалогових панелей, форм перегляду й форм для перегляду записів баз даних і полів наборів записів. lssWizrd використовує спеціальні процедури, щоб прив'язати створені ним елементи даних до класу до полях діалогових панелей. Ці процедури носять назви В«обмін даними діалогової панелі В»таВ« перевірка даних діалогової панелі В»(Dilg Dt hng nd Dilg Dt Vlidtin - DD/DDV). Щоб прив'язати поля з наборів записів до змінних, використовується процедура обміну даними з полями записів (Rrd Fild hng - RF).
Процедури DD/DDV і RF.
Значно спрощують програмісту роботу з діалоговими панелями. Вони дозволяють зв'язати поля діалогових панелей і змінні. Коли користувач редагує поля діалогових панелей, процедури DDV перевіряють введені значення і блокують введення заборонених значень. Потім процедури DD автоматично копіюють вміст полів діалогових панелей в прив'язані до них елементи даних класу. І навпаки, коли додаток змінює елементи даних класу, прив'язані до полів діалогової панелі, процедури DD можуть відразу відобразити нові значення полів на екрані комп'ютера. Процес отримання та обробки повідомлень може здатися надто складним, але, тим не менше, йому повинні слідувати всі Windows-програми. На щастя, при використанні бібліотеки MF більшість приватних деталей приховані від програміста, хоча і продовжують неявно присутніми в програмі. У простому випадку програма, написана за допомогою MF, містить два класи, що породжуються від класів ієрархії бібліотеки: клас, призначений для створення додатка, і клас, призначений для створення вікна. Іншими словами, для створення мінімальної програми необхідно породити один клас від Win, а інший - від FrmWnd. Ці два класи обов'язкові для будь-якої програми. Крім створення вищезазначених класів, в програмі також повинна бути організована обробка всіх повідомлень, що надходять від Windows. У даному прикладі програма ще нічого корисного не робить, тому відповідати на кожне повідомлення не потрібно. MF обробить всі повідомлення, які нас не цікавлять. Тим не менш, у цьому прикладі присутня карта відгуків на повідомлення, або просто карта повідомлень. Пізніше ми розглянемо її докладніше. Як уже згадувалося, MF - це базовий набір (Бібліотека) класів, написаних на мові С + + і призначених для спрощення та прискорення процесу програмування для Windows. Бібліотека містить багаторівневу ієрархію класів, що налічує близько 200 членів. Вони дають можливість створювати Windows-додатки на базі об'єктно-орієнтованого підходу. З точ...