Архитектура на AppWizard и Document-View

Принципите на приложението са описани по-горе. Сега нека разгледаме как се създава с помощта на Visual C ++. Първо, нека разгледаме една важна концепция - проект. Досега приложението се разглеждаше само като колекция от обекти на базови и производни класове. Но за да се осигури работата на приложението, се изисква нещо повече - заедно с описанието на класовете е необходимо и описанието на ресурсите, свързани с приложението, помощна система и т.н. Терминът "проект" се използва просто, когато означава такъв по-общ поглед върху приложението.

В средата на Visual C ++ могат да се изграждат различни видове проекти:

и редовни конзолни приложения,

и приложения за Windows, използващи API,

и статични и динамични библиотеки и др.

Нека разгледаме само създаването на проекти като MFC AppWizard. Microsoft разработи специален набор от инструменти за улесняване и ускоряване на създаването на проекти в среда Visual C.++.

На първо място, трябва да се отбележи, че създаването на проект е не само творчество, но и голямо количество техническа работа, която изисква внимание и точност. Всички приложения на Windows имат доста обща структура и следователно можете да изградите някои шаблони на шаблони, подходящи за определен тип проект. Изграждането на такива заглушки се улеснява от факта, че приложенията, базирани на MFC, се изграждат от елементите на фиксирани класове. Логичното развитие на тази идея беше въвеждането на специални класове и специална архитектура за изграждане на приложение, което да отговаря на широк клас приложения. Тази архитектура вече беше спомената, когато говорихме за библиотеката MFC - това е архитектурата Document-View. Той е основният, но не и единственият при изграждането на проекти в среда Visual C ++. Същността му е, че работата на много приложения може да се разглежда като обработка на документи. В същото време е възможно да се отдели самият документ, който отговаря за представянето и съхраняването на данни, от изображението на този документ, видимо на екрана и позволяващо взаимодействие с потребителя, който преглежда и (или) редактира документ. Според тази архитектура библиотеката MFC съдържа две семейства класове, получени от базовите класове CDocument и CView.

В резултат на това се появи двустепенна технология за създаване на проекти. Първо се създава шаблон на проект с общи свойства, подходящи за много проекти от този тип. На втория етап се прави настройката, като се вземат предвид спецификата на задачата. Microsoft разработи свой собствен инструмент за всеки етап.

Първоначалният скелет - скелетът на приложението - се създава в диалогов прозорец с потребителя от инструмента AppWizard. По време на диалога потребителят определя вида и характеристиките на проекта, който иска да изгради. След като определи кои MFC класове са необходими за този проект, AppWizard изгражда скелетите на всички производни класове, от които се нуждае. Рамката на приложенията, изградена от AppWizard, съдържа всички необходими файлове за създаване на начално приложение, което е цялостно приложение и има разумни функционални свойства, общи за цял клас приложения. Естествено, скелетът не съдържа никакви свойства, специфични за това приложение. Те ще се появят на следващия етап, когато програмистът започне да работи с рамката, създавайки свое собствено приложение от шаблона. Независимо от това, стартерното приложение може да бъде излъчено и изпълнено за изпълнение.

Терминът скелет (приложение, клас, функция) се използва за заглушки, създадени от инструментите AppWizard и ClassWizard.

Съветник на класа

Рамката на приложенията, създадена от AppWizard, е проектирана така, че при по-нататъшната работа с проекта да можете да използвате друг инструмент - ClassWizard (съветник на класа), предназначен за създаване на скелети от нови производни класове. Друга основна цел на ClassWizard е, че създава скелети за заменени методи. Тя ви позволява да покажете всички съобщения, които идват в класа и да създадете скелет за манипулатор за всяко от тези съобщения. Това са само две от основните характеристики на ClassWizard. Той не е всемогъщ, но възможностите му са доста големи.

Първите MFC приложения

Първото приложение, създадено с помощта на библиотеката на класове MFC, е доста просто. Той показва малък диалогов прозорец на екрана, съдържащ ред текст.

Това приложение използва един клас, наследен от основния клас CWinApp.

Лесно приложение

Най-простите приложения за библиотека от клас MFC могат да бъдат създадени без използването на автоматизирания MFC AppWizard. Ето изходния код на първото приложение: