Введение
Вы считаете, что научиться программировать под Windows сложнее, чем построить космический корабль? Вам кажется, что для этого надо иметь коэффициент интеллекта 180 и работать по 12 часов в сутки? Это, конечно, преувеличение. Действительно, создать Windows-приложение очень трудно, однако большинству программистов не приходится посвящать этому всю жизнь. Пару часов в день вполне достаточно.
Сейчас жизнь программиста, который пишет Windows-приложения, стала значительно проще, чем несколько лет назад. В его руках мощные инструменты разработки. Простое приложение можно создать за считанные минуты (ранее для этого потребовалось бы много часов); более того, несколькими щелчками мыши вы можете добавить к вашей программе панель инструментов, строку состояния, диалоговые окна и т.д. Фактически, чтобы построить Windows-приложение, достаточно написать его имя и несколько раз щелкнуть мышью. Довольно просто, не правда ли?
Безусловно, созданная таким образом программа не будет выполнять никаких полезных действий. Она напоминает дом без электричества, водопровода и мебели; чтобы в этом доме можно было жить, его еще надо благоустроить. В этой книге вы узнаете не только о том, как заставить работать простейшую Windows-программу, но и о том, как добавить к ней новые элементы и реализовать новые возможности. Мы рассмотрим программы, управляемые событиями, поговорим о том, как обрабатывать системные сообщения, как строить диалоговые окна, выводить изображения на экран, распечатывать документы, отображать битовые карты, создавать потоки, и о многом другом.
Кроме того, вы узнаете, как использовать в программах новые технологии, включая ActiveX, DirectX и Internet, а также как программировать с помощью WinInet. ActiveX — новое название технологии OLE, позволяющей приложениям совместно использовать не только данные, но и функциональные возможности программ. ActiveX позволяет создавать мини-приложения, называемые управляющими элементами ActiveX, которые можно встраивать в Web-страницы. DirectX — это мультимедиа-технологии, используемые в основном для программирования игр. WinInet — набор классов, позволяющих настолько упростить построение Internet-приложения, что на первый взгляд это кажется невероятным.
На кого рассчитана книга
Эта книга — не учебник по программированию на С++. Чтобы понять примеры, приведенные здесь, вам надо свободно ориентироваться в C++ и знать основы объектно-ориентированного программирования (ООП). Если вы никогда раньше не встречались с C++ и ООП, обратитесь к изданию, специально посвященному программированию на Visual C++, а, изучив его, возвращайтесь к данной книге.
Несмотря на то что книга рассчитана на читателя, знакомого с С++, опыта программирования в системе Windows для ее изучения не требуется. Здесь вы найдете всю необходимую информацию для построения Windows-приложения; приобретете навыки построения Windows-программ и сможете перейти к более специализированным книгам, посвященным, например, ActiveX или DirectX.
Системные требования
Для выполнения примеров, приведенных в данной книге, необходимы те же ресурсы, что и для запуска Visual C++ 5.0 в системе Windows 98.
- IBM-совместимый компьютер с процессором не ниже 486DX 66 МГц (желательно Pentium).
- Microsoft Windows 98.
- 20 Мбайт оперативной памяти.
- Жесткий диск.
- Графический адаптер не ниже VGA (желательно Super VGA).
- Мышь.
- Visual C++ 5.0.
КАК ПОСТРОЕНА КНИГА
В книге рассматривается множество вопросов, связанных с программированием под Windows 98; материал, изложенный в ней, разделен на семь частей. Ниже приведено краткое описание каждой части.
Часть I. Введение в Windows 98
Прежде чем начать разработку программ для Windows 98, надо знать, что представляет собой данная операционная система и как пользоваться инструментальными средствами, имеющимися в Visual C++. В этой части предлагается краткий обзор системы Windows 98. Здесь будут рассмотрены элементы графического пользовательского интерфейса, основные типы окон и управляющих элементов. Кроме того, вы узнаете, что такое многозадачность, и ознакомитесь с работой операционных систем, управляемых событиями.
В этой части приводятся основные сведения о Visual C++ и входящих в его состав инструментальных средствах, включая AppWizard, ClassWizard, компилятор, отладчик и редакторы ресурсов. Вы увидите, как с помощью описанных инструментальных средств создать простое Windows-приложение. Здесь же будут рассмотрены отличия MFC-программ, созданных с помощью Visual C++, от традиционных Windows-приложений. Вы также познакомитесь с различными типами Windows-программ, в том числе с Win32-приложениями, консольными программами, DLL и управляющими элементами ActiveX.
Часть II. Пользовательский интерфейс
Каждое Windows-приложение предоставляет графический интерфейс, который позволяет пользователю взаимодействовать с программой, вызывая команды, редактируя документы и т.д. Создание интерфейса — важная составляющая процесса построения Windows 98-приложения. В этой части будет рассмотрен интерфейс графических устройств (Graphics Device Interface — GDI), который позволяет отображать данные в окне приложения. Вы также узнаете о различных типах окон, включая фрейм-окна, окна просмотра, MDI-окна, диалоговые окна, страницы свойств и окна мастеров.
В этой части изложены не только основные понятия, но и рассмотрена работа с текстом, создание меню, а также использование стандартных управляющих элементов и управляющих элементов общего назначения. Стандартные управляющие элементы включают такие объекты, как кнопка, окно редактирования, флажок опции, кнопки с зависимой фиксацией, окно списка и комбинированный список. К управляющим элементам общего назначения относятся линейный индикатор, строка состояния, линейный регулятор, инкрементный регулятор, средства просмотра списков и древовидных структур. Кроме того, в этой части описан вывод документов на печать под управлением Windows 98, а также управление битовыми картами, зависящими и не зависящими от внешних устройств, и их отображение. Вы узнаете о системах координат, режимах преобразования координат, областях, контурах и метафайлах.
Часть III. Ядро операционной системы
К этому моменту вы приобретете некоторые навыки создания Windows-приложений, поэтому в данной части будут рассмотрены более серьезные вопросы программирования, например управление памятью и процессами, работа с устройствами ввода данных и обработка файлов. Вы узнаете, как распределять память и управлять ею, как создавать многопоточные приложения; научитесь различать перемещаемую, отбрасываемую и виртуальную память, узнаете о приоритетах и синхронизации потоков.
В этой части будут рассмотрены работа с мышью и клавиатурой, а также использование MFC-классов для управления файлами и создание сохраняемых объектов. Вы научитесь использовать в своих программах буфер обмена, применять стандартные, зарегистрированные и приватные форматы, а также записывать данные в буфер обмена в нескольких форматах. Вы узнаете, как открыть буфер обмена, записать информацию и скопировать ее.
Часть IV. ActiveX
Последние части книги посвящены новым технологиям. В V части с помощью инструментальных средств Visual C++ вы научитесь создавать ActiveX-приложения. К таким приложениям относятся контейнеры (которые могут хранить объекты, принадлежащие другим программам), серверы (которые предоставляют объекты данных, а также средства их обработки), приложения автоматизации (которые могут управлять другими приложениями в системе либо позволяют управлять своими компонентами) и управляющие элементы ActiveX.
В процессе изучения ActiveX-технологии вы самостоятельно построите ActiveX-программу. Кроме того, в книге приведены примеры контейнера и сервера для совместного использования и редактирования объектов данных, клиента и сервера автоматизации, а также управляющих элементов ActiveX. Освоив материал, изложенный в этой части, вы получите представление о возможностях технологии ActiveX и о том, как эти возможности реализуются средствами Visual C++.
Часть V. Мультимедиа
Эта часть книги знакомит вас с мультимедиа-технологиями DirectX, в частности с DirectDraw, DirectSound, DirectInput и Direct3D. (DirectPlay в этой книге не рассматривается.) Вы научитесь создавать движущиеся изображения с помощью DirectDraw и воспроизводить звуковые файлы посредством DirectSound. В главе, посвященной DirectInput, вы увидите, какие интересные возможности предлагает эта библиотека для работы с устройствами ввода данных. Используя Direct3D, вы сможете даже вывести на экран и вращать трехмерный объект.
Часть VI. Internet
В настоящее время Internet приобретает все большее значение, поэтому ни одна книга по программированию в системе Windows не может считаться законченной, если в ней не рассматривается построение Internet-приложений. Библиотека WinInet позволяет без труда создавать HTTP-, FTP- и Gopher-программы. В этой части вы не только ознакомитесь с классами, предназначенными для Internet-программирования, но и построите FTP-приложение, которое позволит просматривать каталоги на FTP-сервере и даже копировать файлы.
Кроме того, вы научитесь создавать сложные Internet-приложения, используя программируемые объекты Internet Explorer. Компоненты Internet Explorer представлены в виде управляющих элементов ActiveX, благодаря этому вы можете, не прилагая значительных усилий, реализовать в своем приложении возможности Web-броузера.
Приложения
В приложениях рассказано о процессе сертификации новых Windows-программ. Если вы собираетесь разрабатывать коммерческие продукты, вам придется внимательно изучить не только эту часть книги, но и соответствующие официальные документы.
ПИКТОГРАММЫ, ИСПОЛЬЗУЕМЫЕ В КНИГЕ
Чтобы обратить внимание читателя на отдельные фрагменты текста, в книге использованы следующие пиктограммы.
Объем книги наводит на мысль, что работа вам предстоит немалая. Как изучить весь материал? Постепенно! Переходите к следующей странице и принимайтесь да дело!