Microsoft Visual C++ и MFC. Программирование для Windows 95 и Windows NT. Часть 2 - Александр Фролов
Шрифт:
Интервал:
Закладка:
2. Повторное использование кода
Написание новых программ всегда являлось сложной задачей. Поэтому создатели языков программирования и средств разработки всегда стремились облегчить этот процесс. Один из способов облегчить программирование заключается в повторном использовании программного кода ранее написанного вами, или кем-либо другим.
На заре развития программирования повторное использование программного кода достигалось за счет использования подпрограмм или процедур. Созданные процедуры и подпрограммы записывались в специальные библиотеки и использовались при разработке новых программ.
С появлением объектно-ориентированного программирования возможности повторного использования программного кода значительно расширились. За счет введения понятия классов программисты получили возможность не только использовать ранее написанные процедуры, но изменять и дополнять их по своему усмотрению.
Компоненты
Среда Microsoft Visual C++ предусматривает дополнительные возможности для повторного использования программного кода при создании новых программ. Для этого предназначена так называемая галерея компонентов – Component Gallery.
Component Gallery служит вместилищем для компонентов. В качестве компонентов выступают классы (возможно вместе с необходимыми ресурсами), органы управления ActiveX (OCX), а также сложные компоненты. Компоненты Component Gallery можно включать в ваше приложение и использовать по своему усмотрению.
При добавлении к проекту некоторых компонент в проект добавляются не только новые классы, но также новые ресурсы. В ряде случаев даже выполняется изменение исходных текстов самого приложения.
Добавление компонентов в проект
Процедура использования Component Gallery для добавления разрабатываемому приложению новых возможностей предельно проста. Выберите из меню Insert строку Component. На экране появится диалоговая панель Component Gallery (рис. 2.1).
Она состоит из нескольких страниц, в которых отображаются различные пиктограммы. Именно эти пиктограммы и представляют компоненты, которые вы можете добавить к вашему приложению.
Количество страниц Component Gallery и набор компонент зависит от версии Visual C++ и постоянно расширяется. В Component Gallery можно включить компоненты, разработанные другими фирмами, например Blue Sky Software, VideoSoft. Более того, вы можете включить в Component Gallery собственные компоненты, разработанные вами. В простейшем случае, в качестве таких компонент могут выступать классы приложений, которые вы создали.
Рис. 2.1. Диалоговая панель Component Gallery
Управление компонентами
Сразу после установки среды Microsoft Visual C++ в диалоговой панели Component Gallery отображается две станицы, содержащие компоненты – Microsoft и OLE Controls. Каждая страница представляет разные категории компонентов.
В диалоговой панели Component Gallery вы можете создавать и удалять страницы с компонентами, добавлять и удалять компоненты, перемещать их между категориями, переименовывать и выполнять над ними другие простые действия.
Для управления страницами компонентов и отдельными компонентами достаточно нажать кнопку Customize. Вы сможете выполнить все настройки в открывшейся диалоговой панели Customize Component Gallery.
Вся информация о компонентах и страницах Component Gallery записана в специальной базе данных. Эта база данных расположена в файле gallery.dat, в каталоге MsdevTemplate. Если вы случайно удалили нужные компоненты с панели Component Gallery, вы можете восстановить их. Для этого надо удалить файл gallery.dat. Во время очередного запуска Microsoft Visual C++ заново создаст файл gallery.dat и восстановит все компоненты, поставляемые с Visual C++.
Компоненты Microsoft
На странице Microsoft диалоговой панели Component Gallery расположены компоненты, разработанные фирмой Microsoft. Среди них содержатся много интересных компонент, добавляющих к вашему приложению различные возможности практически без дополнительных затрат с вашей стороны. Среди них компонент, позволяющий приложениям использовать обменный буфер Windows Clipboard, компонент, выполняющий фоновые работы во время бездействия приложения, компонент, содержащий готовые диалоговые панели для ввода пароля и отображения хода различных процессов и многое многое другое.
Чтобы получить полные описания каждого компонента, достаточно выбрать его в панели Component Gallery и нажать на кнопку с вопросительным знаком. Сейчас мы кратко опишем назначение компонент Microsoft, а затем рассмотрим использование одной из компонент на примере.
Пиктограмма Назначение соответствующего компонента
Предназначен для использования со средствами автоматизированной разработки проектов – Custom AppWizard
Компонент добавляет к классам окон просмотра, наследованным от базового класса CView, методы для обработки команд меню Edit, предназначенные для взаимодействия с обменным буфером Clipboard
Позволяет добавить к окну приложения панель управления, созданную на основе шаблона диалоговой панели
Компонент выполняет регистрацию всех типов документов приложения. После этого документы приложения могут быть открыты и распечатаны при помощи приложений Windows Explorer или File Manager
Этот компонент позволяет вам создать уникальный глобальный идентификатор – GUID. Такие идентификаторы используются при создании приложений, работающих с технологией OLE, регистрационной базой Windows и др. Созданный идентификатор записывается в буфер clipboard. Модификация проекта не выполняется, вы должны сами вставить идентификатор в исходный текст приложения
Добавляет метод OnIdle к любому классу приложения, наследованному от базового класса CWinThread. Обычно в качестве такого класса выступает главный класс приложения. Метод OnIdle позволяет выполнять обработку во время бездействия приложения, когда очередь сообщений приложения пуста
Компонент обеспечивает поддержку почтового API. Если вы не указали на необходимость работы с MAPI во время создания проекта и желаете, чтобы ваше приложение могло передавать и принимать почтовые сообщения, вставьте в проект этот компонент
Включает поддержку OLE Automation
Если во время создания приложения средствами MFC AppWizard вы не указали, что оно может использовать органы управления OCX, используйте этот компонент
Компонент можно использовать для создания собственных органов управления, представляющих список или список с окном редактирования
Используйте данный компонент, если ваше приложение должно работать с цветовыми палитрами
Компонент добавляет к проекту диалоговую панель для ввода пароля и вызывает ее перед стартом приложения. Таким образом можно заблокировать несанкционированный доступ к вашему приложению
Позволяет добавить к окнам вашего приложения временное (контекстное) меню, которое открывается при нажатии на правую кнопку мыши
Компонент представляет из себя диалоговую панель, содержащую линейный индикатор. Используйте данную панель для отображения хода различных процессов
Компонент позволяет добавить к приложению блокнот Property Sheet (диалоговую панель с несколькими страницами) или ряд панелей выбора свойств Wizard
Данный компонент позволяет в момент запуска приложения отображать на экране рисунок
Используйте компонент для разделения окна на несколько отдельных частей
Компонент позволяет добавить к панели состояния главного окна приложения индикаторы для вывода текущей даты и времени
Компонент добавляет к диалоговой панели About приложения сведения о ресурсах системы
Если вы добавите этот компонент, то сразу после запуска приложения отображается диалоговая панель с различными короткими замечаниями
Компонент позволяет реализовать краткие подсказки (органы управления Tool Tips) для диалоговых панелей приложения
Используйте этот компонент при создании мультимедийных приложений. После включения компонента в проект вы можете обращаться к программному интерфейсу мультимедиа
Компонент обеспечивает работу с сокетами Windows, что позволяет ему взаимодействовать с другими приложениями по протоколу TCP/IP. Если вы не указали во время создания проекта, что приложение будет использовать сокеты, вы можете добавить в проект этот компонент
Как видите, некоторые компоненты, расположенные на странице Microsoft, дублируют возможности приложения, которыми можно управлять в ходе создания приложения средствами MFC AppWizard . Поэтому если во время начального создания проекта приложения вы не указали, что приложение будет работать с сокетами Windows то вместо кропотливого исправления проекта вручную можно просто добавить в него компонент Windows Sockets.