Введение

В 24 томе серии "Библиотека системного программиста" мы начали рассказывать о программировании приложений Windows с использованием библиотек классов MFC. Вы узнали об основных принципах построения приложений MFC и наиболее важных классах. В этом томе мы продолжим изучение библиотеки классов MFC и ее возможностей.

Много внимания будет уделено созданию приложений, имеющих многооконный пользовательский интерфейс, основанный на использовании технологии MDI, основы которой мы уже излагали в предыдущих книгах серии "Библиотека системного программиста". Но теперь мы будем использовать для создания таких приложений не возможности программного интерфейса Windows, а классы библиотеки MFC. Если вы разрабатывали раньше многооконные приложения, то сможете по достоинству оценить насколько библиотека MFC упрощает работу программиста.

Мы создадим многооконное приложение с использованием MFC AppWizard и объясним как оно работает. Одно из преимуществ многооконного приложения - это возможность отображать в различных окнах одного приложения различные представления документов одного и того же типа или даже документы разных типов. Мы приведем пример приложения, которое отображает в своих окнах документы различного типа.

Развитый программный интерфейс операционной Windows значительно помогает программисту в разработке приложений, имеющих сложный пользовательский интерфейс. Создавая приложения Windows, программист избавлен от необходимости вручную рисовать окна, меню, диалоговые панели и т. д. Трудно даже представить, насколько усложнится задача разработки приложения, если вы решите создать программу, имеющую аналогичные возможности в операционной системе MS-DOS.

Когда вы начнете использовать в своих разработках не только функции программного интерфейса Windows (Windows API), но также и библиотеку классов MFC, создание сложных приложений Windows станет еще проще. Теперь в ваших руках будет высокоуровневое средство, включающее в себя функции Windows API.

Библиотека MFC не только служит для простого объединения функций Windows API в классы (например функции управляющие меню, объединяются в один класс, а функции управляющие панелью состояния, - в другой). Библиотека MFC обеспечивает взаимодействие составляющих ее классов, которые вместе нацелены на выполнение определенных задач. Недаром в документации и в дополнительной литературе встречается термин framework (каркас, основа, рабочая среда), употребляемый в отношении совокупности классов MFC и их внутреннему устройству.

Microsoft Visual C++ имеет еще одно средство, позволяющее упростить программисту работу и обеспечить повторное использование кода. Это так называемая галерея компонентов - Component Gallery. В нее входит набор отдельных модулей - компонент, которые программист может включать в свой проект для решения каких-либо задач.

Каждый такой компонент может содержать программный код с ресурсами и предназначается для решения определенных задач. Например, существует компонент, включив который в свой проект, вы получите возможность использовать контекстное меню, затратив минимум усилий для написания собственного программного кода. Можно сказать что компоненты - это готовые решения определенных задач, доступные вам.

Если в своей работе вы создаете классы и ресурсы, которые впоследствии потребуются вам или вашим коллегам, включите их в галерею компонентов, после чего их легко можно будет перенести в другие приложения.

После того, как вы изучите многооконные приложения и возможности использования галереи компонентов, мы рассмотрим средства библиотеки MFC, предназначенные для создания и управления меню, панелями управления и панелями состояния.

Мы также расскажем о старых знакомых - стандартных диалоговых панелях, которые представлены в библиотеки MFC отдельными классами.

В заключении мы покажем как использовать Microsoft Visual C++ и библиотеку классов MFC для доступа к базам данных. На примере мы покажем, как с помощью MFC AppWizard быстро разработать приложение для доступа к базам данных через ODBC драйверы.

Новые версии Visual C++

За короткий промежуток времени, прошедший с момента выхода нашей первой книги, посвященной MFC, Microsoft выпустила еще две версии Visual C++. В них делается основной упор на создание приложений для работы с базами данных и глобальной сетью Internet.

Microsoft Visual C++ версия 4.2

Возможности Microsoft Visual C++ версии 4.2 значительно расширены, даже по сравнению с предыдущей версией Visual C++. Ниже мы перечислили только самые интересные, на наш взгляд, новшества.

Сеть Internet

В состав версии 4.2 включены абсолютно новые классы для работы с сетью Internet, основанные на программном интерфейсе Wininet. С их помощью вы легко сможете создавать клиентские приложения для работы с серверами WWW, FTP и Goufer.

Microsoft Visual C++ версии 4.2 позволяет реализовать новую технологию ActiveX, предложенную Microsoft для использования в сети Internet. В MFC AppWizard добавлены средства, ускоряющие разработку органов управления ActiveX.

Базы данных

Расширены возможности работы с базами данных. Внесены изменения и дополнения в классы, взаимодействующие с базами данных через ODBC, в том числе модифицированы классы CRecordset и CDatabase. Добавлены новые компоненты к Component Gallery, которые можно использовать для связи с базами данных.

Стандартная библиотека языка Си++

В Microsoft Visual C++ версии 4.2 реализована стандартная библиотека языка Си++. В нее включены всевозможные функции, которые вы теперь можете использовать в своих программах.

Win32s посвящается

Microsoft Visual C++ версии 2.0 и все старшие версии этого продукта не позволяют разрабатывать 16-разрядные приложения для операционных систем Windows 3.хх.

Начиная с версии 4.2, приложения, подготовленные в Microsoft Visual C++ и MFC 4.2, также не будут работать в среде Windows 3.хх с установленной поддержкой 32-разрядных приложений Win32s.

Если вам все же необходимо создать приложение, способное работать в среде Win32s, следует воспользоваться более ранними версиями MFC, например MFC 4.1. К сожалению, в этом случае, последние новшества, введенные в библиотеку MFC 4.2, уже не будут вам доступны.

Microsoft Visual C++ версия 4.2, Enterpise Edition

По сравнению с обычной версией Microsoft Visual C++ 4.2, версия Enterpise Edition, значительно расширяет возможности программиста при работе с базами данных.

Если вы используете в своих программах базы данных Microsoft SQL Server или Oracle, то в окне Project Workspace появится новая страница - DataView. В ней представлены различные объекты базы данных - таблицы, хранимые процедуры, триггеры и т. д.

В состав Microsoft Visual C++ 4.2 Enterpise Edition включен отладчик, позволяющий отлаживать хранимые процедуры на языке SQL. Это значительно упрощает этап отладки программы и поиска возможных ошибок.

Интересные новшества введены и в текстовый редактор Microsoft Visual C++. Теперь он имеет возможность более полно работать с текстами на языке SQL, выделяя цветом ключевые слова этого языка.

Visual C++ и Visual J++

Летом 1996 года Microsoft выпустила тестовую версию нового продукта, получившего название Visual J++. Его название перекликается с названием Visual C++, и можно подумать, что “Жи++” стал приемником Си++. Спешим вас успокоить, Жи++ не предназначен для замены Си++. Это совершенно другой язык программирования, основанный на языке Java, лицензию на который Microsoft приобрела у известной фирмы Sun Microsystems.

Предусмотрена интеграция Visual J++ XE "Visual J++" в уже знакомую вам среду разработчика Microsoft Developer Studio. Более того, можно организовать взаимодействие Visual C++ и Visual J++.

Ресурсы Microsoft

Вместе с Microsoft Visual C++ поставляется файл Common.res, содержащий различные ресурсы - пиктограммы, курсоры, изображения bitmap. Вы можете свободно использовать эти ресурсы в своих приложениях и распространять их.

¨     Вместо того, чтобы самому рисовать картинки для пиктограмм, панелей управления и курсоров или заказывать их у художника, обратите внимание на файл Common.res. Возможно, в нем есть то, что вам надо.

Во время установки Microsoft Visual C++ не происходит копирования файла ресурсов Common.res на жесткий диск компьютера. Поэтому вы должны скопировать его отдельно или использовать непосредственно с компакт диска. На компакт дисках Microsoft Visual C++ этот файл расположен в каталоге Msdev\Samples\Mfc\General\Clipart\.

Чтобы включить некоторые ресурсы из файла Common.res в файл ресурсов вашего приложения, откройте в Microsoft Visual C++ файл Common.res и файл ресурсов приложения. Затем скопируйте интересующие вас ресурсы и сохраните изменения на диске.

Как связаться с авторами

Авторы имеют почтовый адрес в сети GlasNet. Все свои замечания и предложения по содержанию книг серий "Библиотека системного программиста", а также "Персональный компьютер - шаг за шагом" вы можете присылать нам по следующему адресу:

: frolov@glas.apc.org

Наш почтовый адрес доступен не только пользователям сети GlasNet. Абоненты других компьютерных сетей также могут передавать нам сообщения. Ниже мы приводим наш адрес в различных сетях:

Глобальная сеть Наш адрес
CompuServe >internet:frolov@glas.apc.org
GlasNet frolov@glas.apc.org
Internet frolov@glas.apc.org
Relcom frolov@glas.apc.org
UUCP uunet!cdp!glas!frolov

Вы также можете присылать свои пожелания почтой по адресу:

* Издательский отдел АО "ДИАЛОГ-МИФИ".
Индекс 115409, город Москва, улица Москворечье,
дом 31, корпус 2.

Приносим свои извинения за то, что не можем ответить на каждое письмо. Мы также не занимаемся рассылкой книг, дискет и исходных текстов к нашим книгам. По этому вопросу обращайтесь непосредственно в издательство “Диалог-МИФИ”.

Благодарности

Большую помощь нам оказал сотрудник Microsoft АО Юрий Тумашко, предоставивший дистрибутив Microsoft Visual C++ для работы над книгами, посвященными программированию в Windows.

Авторы выражают благодарность Фроловой Ольге Викторовне, Кустову Виктору. Мы также благодарим всех сотрудников издательского отдела АО "ДИАЛОГ-МИФИ": Голубева Олега Александровича, Дмитриеву Наталью, Виноградову Елену, Кузьминову Оксану.

Поддержку в работе над книгами нам оказали генеральный директор АО “ДиалогНаука” Антимонов Сергей Григорьевич и руководитель антивирусного отдела АО “ДиалогНаука” Лященко Юрий Павлович, предоставившие доступ к сети Internet через свой сервер.