А если не на ту кнопочку нажмёте? Будет очень весело если вместо Пуск нажмёте самоликвидацию. В это-то и смысл, что-то бы что-то сделать надо знать как оно работает.
Предисловие Книга посвящена методам проектирования интерфейса пользователя средствами Win32 API. Win32-приложения легко совмещают достоинства структурного, объектно-ориентированного и событийного программирования. Неизменная со времен Win16 методика и развивающаяся с ориентацией на Win64 функциональность программирования с каждым годом увеличивают число разработчиков в Win32. Когда требуется быстрый исполняемый код минимального объема, то у Win32-приложений конкурентов нет, и в ближайшие годы не предвидится. Win32 API поддерживается 32-разрядными операционными системами Windows, а Win32-приложения легко переносятся на платформу Linux и обратно. Примеры этой версии книги апробированы в среде Visual С++ .NET в операционной системе Windows XP. Ранее они были апробированы в средах Borland C++ 3.1 и Builder 4.0, Visual С++ 5.0 и 6.0. Перечислим главные отличия этой версии книги от первого издания. Примеры учитывают требования строгости Visual С++ .NET. Добавлен способ изменения возможностей стандартных органов управления. Третья глава представлена в двух вариантах: с GDI и с GDI+; GDI+ привлекательна в первую очередь кистями с переменным цветом раскрашивания и поддержкой растровых изображений форматов BMP, GIF, JPG, TIFF, Exif и PNG. Многие операции с растровыми изображениями, которые в GDI требовали около 100 труднообъяснимых строк, в GDI+ требуют не более 10 простых и понятных строк кода. Добавлен также предметный указатель. В Windows интерфейс пользователя представляет собой целостную систему различных элементов. Элементами служат окна, органы управления, меню, диалоговые панели и другие объекты Windows. Каждый элемент задают множествами параметров состояния, входных и выходных сообщений. Для элементов одного класса описывают единый метод изменения параметров состояния и обработки входных и выходных сообщений. Основной задачей проектирования интерфейса пользователя является разработка целостной системы управления множеством состояний программного продукта. Книга рассматривает проектирование приложений методами структурного и событийного программирования, что не исключает возможностей использования классов языка C++ и не противоречит им. Например, в третьей главе показано, как легко используются классы GDI+. Кроме того, все элементы интерфейса пользователя создаются динамически. Это исключает возможность вмешательства в работу приложений через файлы ресурсов. Книга состоит из предисловия и шести глав. В каждой главе подробно обсуждаются обязательные разделы изучаемого материала и кратко рассматриваются вспомогательные функции, относящиеся к этому разделу. В конце каждого раздела перечисляются вопросы контроля полученных знаний, а также приводятся варианты упражнений. Для первых четырех глав предусмотрены справочные материалы, которые оформлены в таблицах ПРИЛОЖЕНИЙ в конце книги. В ссылках на таблицы N. M в книге N указывает на номер ПРИЛОЖЕНИЯ, а M – на номер таблицы в ПРИЛОЖЕНИИ N. Глава 1 посвящена созданию главного объекта Windows – окон. Рассматривается понятие окна с точки зрения языка программирования. Читатель знакомится со способами описания классов и функций окон, главной функции приложения. Отдельно рассмотрена функция создания окон этих классов. Показан механизм получения и обработки сообщений. Рассматриваются базовые функции перемещения и изменения расположения окон, а также средства обмена сообщениями между приложением и пользователем. Глава 2 рассматривает определенные в системе Windows классы окон. Это органы управления – статический текст, кнопки, списки, редактор текста, полосы прокрутки и комбинированные списки. Здесь читатель знакомится со способами создания и управления состоянием органов управления. В этой главе продолжается изучение функций обмена и обработки сообщений между окнами. Глава 3 поясняет, как выводить тексты и графические примитивы в окнах. Здесь читатель знакомится с контекстом отображения и его основными атрибутами, основными понятиями метрики Windows и базовыми функциями отображения текста и графических примитивов. Примеры этой главы посвящены выводу таблиц, графиков, диаграмм и различным эффектам вывода текста. Этот материал здесь же продублирован и расширен для технологии GDI+. Глава 4 рассматривает главное меню окна и его разделы, временные и плавающее меню. Подробно рассматриваются функции динамического создания, изменения и управления состоянием элементов меню. Здесь же изучают способы создания акселераторов и работы с ними. Глава 5 посвящена панели инструментов и строке состояния. Здесь изучают базовые способы создания и использования панели инструментов и строки состояния. Также показан механизм обработки уведомительных сообщений. Рассматриваемые в этой главе примеры и упражнения связаны с примерами и упражнениями из предыдущих глав. Глава 6 рассматривает способы динамического создания диалоговых панелей. Здесь показаны модальные и немодальные панели, а также блокноты диалоговых панелей. Особое внимание уделено примерам обмена данными и обработке сообщений в диалоговых панелях и блокнотах панелей. Показаны способы создания стандартных диалоговых панелей операционной системы.