Программирование на Borland C++ в среде Windows: В 2-х томах: Том К.: "Диалектика", 1993. - 320 с., ил. ISBN 0-553-35143-5 (англ.) ISBN 5-7707-5385-4 (том 1) ISBN 5-7707-5384-6 В книге двух всемирно известных специалистов в области персональных компьютеров - Питера Нортона и Поля Йао - описывается техника эффективного использования Borland C++, библиотеки ObjectWindows и функций API Windows (Application Programing Interface). В ней приводятся тексты программ, предназначенные для более полного ознакомления с этими средствами и их возможностями. Однако эта книга не просто набор листингов программ, в ней также подробно рассматриваются концепции и философия Microsoft Windows. Книга рассчитана на программистов разной квалификации, преподавателей, студентов и всех, кто разрабатывает программы для среды MS Windows с использованием Borland C++ и библиотеки ObjectWindows. ББК 32.973 Предисловие
Одним из главных препятствий при разработке прикладных программ Windows является необходимость обработки большого количества обращений от интерфейса прикладных программ (API) Windows. Хотя мы и почувствовали благодаря Borland, что наша библиотека ObjectWindows в значительной степени упрощает задачу успешного взаимодействия с API, для создания оптимальных и эффективных прикладных программ, полностью соответствующих стандартам Windows, необходимо знать, как Windows обеспечивает такое взаимодействие и как рассматривать отдельные ее аспекты.
Мы чрезвычайно рады приветствовать двух всемирно известных специалистов в области персональных компьютеров - Питера Нортона и Поля Йао - в контексте данной проблемы как официальных авторов Bantam/Borland. Питер стал легендой благодаря своей способности объяснять на народном английском языке все "гаечки и винтики" в вопросах практической работы, тогда как Поль привнес теоретическую глубину в понимание возможностей Windows, и это говорит о том, что, продолжая вести конкурентную борьбу, соперники могут совместными усилиями найти верный подход.
Данная книга рассчитана на программистов, поскольку даже мимолетный взгляд на пространные листинги производит впечатление. Но это не просто совокупность огромной массы листингов - здесь достаточно подробно рассмотрены и концептуальные вопросы Windows. Borland C++ дает Вам инструмент для овладения Windows, Питер и Поль помогают Вам в приобретении навыков, необходимых для эффективного применения этого инструмента. Сконцентрировав все внимание на библиотеке OWL, они показали, каким образом Вы можете быстро и эффективно создать свою собственную прикладную программу, используя полный диапазон возможностей Windows - тексты, графику, меню, блоки диалога, полосы прокрутки и многое другое.
Мы надеемся, что эта книга станет для Вас чрезвычайно полезным помощником в работе по программированию в Windows.
Филипп Кан
Philippe Kahn,
Главный управляющий компании Borland International

Через несколько месяцев после того как мы представили книгу П.Нортона "Windows 3.0 Power Programming Techniques" для языка программирования С, фирма Borland International объявила о создании компилятора Borland C++ для Windows. В то время как большинство разработчиков Windows ^сегодня используют С, мы предсказываем преобладание C++ в перспективных разработках. Что касается разработчиков С, то для них C++ является средством последовательного плавного перехода к дополнительным средствам объектного программирования для существующих систем, написанных на С. Поэтому мы создали версию C++ нашей *книги. Мы выбрали компилятор Borland C++ и библиотеки Borland ObjectWindows (OWL), поскольку считаем, что они представляют собой хорошую основу для построения прикладных программ. Фундаментальные положения программирования Windows остаются прежними, независимо от используемого языка. В связи с этим основная часть книги почти идентична версии для С. Исключения для данного утверждения заключаются в следующем:
* Главы 2, 3, 4 и 5 были написаны полностью для редакции C++. Это является отражением того факта, что "минимальная" программа Windows, написанная на С, довольно резко отличается от подобной ей программы, написанной на C++ с использованием OWL. Среди прочих тем эти главы содержат описание основной организации двух исходных объектов OWL: объекта прикладной программы и объекта окна.
* Все примеры программ написаны в C++. Они позволяют понять как программирование на C++ может сочетаться с программированием на Windows.
Главная цель этой книги - помочь опытным программистам, работающим на C++, научиться писать программы в Windows. Существует несколько исходных положений, являющихся бесценными при попытке разобраться в новой среде. Одно из них — образец кодирования, демонстрирующий ключевые моменты технологии, необходимые для понимания преимущественных возможностей среды. Второе заключается в мудром совете от лица наставника, который знает все входы и выходы данной среды. В этой книге есть и то, и другое.
Мы написали фрагменты программ для демонстрации использования различных возможностей Windows и приложили полные листинги этих программ, чтобы дать Вам полное представление о том мире, с которым Вам придется иметь дело. Кто-то сказал, что была написана вообще лишь одна программа Windows. Все остальные программы Windows можно назвать "перелатанными обрезками" самой первой. Не стесняйтесь и Вы использовать любой знакомый Вам код в своих рабочих проектах Windows (эти программы представлены в форме, удобной для машинного чтения. О подробностях Вы сможете узнать,.раскрыв внутреннюю сторону обложки).
Для того чтобы начать программировать в Windows, Вам будет необходимо следующее:
* Один из трех программных продуктов Borland: Turbo C++ для Windows; Borland C++ для Windows либо Borland C++ и Application Frameworks.
* Windows версии 3.0 или более поздние.
Если Вы планируете работать с Turbo Debugger, то также могут потребоваться следующие аппаратные средства, благодаря которым Turbo Debugger получит собственное устройство вывода:
* Адаптер MDA и монохромный монитор для компьютера, оснащенного шиной типа AT. Часто может использоваться вместо адаптера MDA графический адаптер, совместимый с Hercules.
* Адаптер 8514/а и совместимый дисплей (кроме имеющегося монитора типа VGA) для компьютера, оснащенного шиной МСА.
С темой программирования в Windows в книге тесно переплетается описание архитектуры Windows. Создавая первую редакцию книги, мы обращались к помощи коллектива, разрабатывающего Windows, и не имели представления о внутренней работе Windows. Данная версия книги - это результат сотрудничества с разработчиками OWL, благодаря кому мы разобрались в вопросе разработки классической библиотеки OWL.
Эта книга разделена на шесть частей. В части I мы приводим краткую историю Windows и рассматриваем три коллизии, с которыми пришлось столкнуться новым программистам: программирование с управляющими сообщениями, генерацию и управление графическим выводом и изучение того, каким образом использовать различные объекты интерфейса пользователя.
В части II мы даем анализ "минимальной" программы Windows и раскрываем несколько фундаментальных тем программирования в Windows. Цель данного раздела — изучение основных структур, которые имеют отношение ко всем программам Windows. Вы убедитесь в том, что программа Windows OWL представляет собой сочетание, как минимум, двух компонентов: прикладного объекта и объекта окна.
Часть III познакомит Вас с интерфейсом графических устройств (GDI) Windows. Ваши программы будут использовать GDI для осуществления аппаратно-независимо-го графического вывода на экраны, принтеры и плоттеры. Описываются базовые концепции программирования графики, в том числе дается представление о координатах прорисовки, контексте устройства GDI и о вырезке изображения (глава 6). Отдельные главы посвящены созданию посредством GDI пикселей, линий, закрашенных поверхностей и текста.
В части IV речь идет о трех ключевых объектах пользовательского интерфейса: меню, окнах и блоках диалога. Мы даем описание внутреннего механизма работы каждого типа объекта и всех основных средств для обеспечения оперативности их работы.
Часть V подробно излагает вопрос пользовательского ввода. Система Windows является операционной средой, где управление осуществляется посредством сообщений, поэтому вполне логично обнаружить, что результат ввода имеет форму сообщений. Далее приводится описание потока данных от реальных аппаратных средств через системные буферы в программу Windows.
В части VI рассматриваются соглашения операционной системы. Сюда включены два основных раздела: память и динамическая компоновка. Один из крупных новых элементов Windows 3 включает в себя возможности совершенствования процесса использования памяти. Для того чтобы Вы смогли иметь точное представление о том, что это означает, мы постарались дать описание внутреннего механизма работы каждого рабочего режима Windows.
БЛАГОДАРНОСТЬ
Поиск и обработка объема информации, необходимой для такой книги, как эта, является задачей, выполнение которой становится нереальным делом без помощи большого числа людей. Мы счастливы быть связанными с целой группой специалистов, разделивших невероятные приключения, приведшие к успеху Windows.
Мы рады поблагодарить в первую очередь группы разработчиков Windows 1.x, 2.x и 3. Особенно нам хочется выразить признательность тем специалистам, которые отдали свое время и/ силы, чтобы помочь нам понять самые хитрые тонкости работы Windows. Это Питер Белью, Джон Бутлер, Марк Клиггет, Кларк Кир, Рик Дилл, Мэрлин Эллер, Рон Гери, Боб Гандерсон, Поль Клингер, Скотт Макгрегор, Эд Миле, Уолт Мур, Гэйб Ньюел, Крис Питере, Джон Полок, Рэо Ремала, Лин Шэу, Чарльз Симони, Тэнди Трувер, Мэни Велон, Дэвид Вайс и Стив Вуд.
Далее, выходя за пределы Microsoft, благодарим тех, кто помогал и поддерживал нас при создании этой книги. Во-первых, особая благодарность Давиду Дюранту, который был и остается нашим первейшим инструктором в программировании Windows. По адресу Application's Development Division шлем нашу благодарность Джиму Кэшу - он подсказал, как сделать понятным процесс программирования Windows, а также Полю Клемонду, прикладному разработчику Windows, мастеру
Hosted by uCoz