- •Московская финансово-промышленная академия
- •Содержание
- •Глава 1. Модель программирования приложений
- •1.1. Потребительские свойства Windows
- •1.2. Процессы в Windows и потоковая многозадачность
- •1.3. Динамические библиотеки
- •1.4. Программное обеспечение для создания Win-приложений
- •Спецификация префиксов венгерской нотации
- •Глава 2. Обзор возможностей программирования
- •2.1. Общий взгляд на программирование в Windows
- •2.2. Взаимодействие Windows с программой
- •2.3. Win32 api: прикладной интерфейс для Windows
- •2.4. Компоненты окна
- •2.5. Основы приложений Windows
- •2.6. Каркас приложения Windows
- •2.7. Определение класса окна
- •Значения параметра lpszName
- •Наиболее употребляемые макросы для встроенных курсоров
- •Типы системных кистей
- •2.8. Создание окна
- •Наиболее распространенные стили
- •Параметры способа отображения nHow
- •2.9. Цикл обработки сообщений
- •2.10. Оконная функция
- •Типы префиксов
- •Глава 3. Обработка сообщений Windows
- •3.1. Что такое сообщения?
- •3.2. Обработка нажатая клавиш
- •Битовая карта lParam
- •3.3. Обработка сообщений wm_paint
- •3.4. Обработка сообщений «мыши»
- •3.5. Генерация сообщения wm_paint
- •3.6. Генерация сообщений таймера
- •Глава 4. Ресурсы и меню
- •4.1. Окна сообщений MessageBox
- •Значения функции MessageBox
- •Значения wMbType
- •4.2. Представляем меню
- •4.3. Использование ресурсов
- •Параметры menu
- •Параметры элементов меню
- •4.4. Включение меню в программу. Обработка команд
- •4.5. Включение акселераторов сменю
- •4.6. Загрузка таблицы акселераторов
- •Глава 5. Создание диалогов
- •5.1. Взаимодействие Win-диалогов с пользователем
- •5.2. Модальные диалоги: обработка сообщений
- •5.3. Активизация и создание простейшего диалога
- •5.4. Определение ресурсов диалога
- •Стили диалога
- •5.5. Оконная функция диалога
- •5.6. Основы работы со списками
- •Типы сообщений
- •5.7. Инициализация списка и выбор элементов
- •5.8. Окно ввода
- •5.9. Использование немодального диалога
- •Глава 6. Графические образы, иконки и курсоры
- •6.1. Иконка и курсор
- •6.2. Определение малой иконки
- •6.3. Работа с растровыми изображениями
- •Значения параметра dwRaster
- •6.4. Работа с несколькими растровыми изображениями
- •Глава 7. Более подробно об элементах управления
- •7.1. Работа с контрольными переключателями
- •7.2. Статические элементы
- •7.3. Работа с селекторными кнопками
- •7.4. Линейки прокрутки
Глава 2. Обзор возможностей программирования
Настоящая глава является введением в программирование для Windows и преследует две основные цели. Во-первых, в ней рассматривается, как приложение должно взаимодействовать со средой Windows и какие правила должны соблюдаться каждым приложением Windows. Во-вторых, здесь описывается, какой должна быть структура приложения. Эта структура – каркас приложения – в дальнейшем будет использоваться как основа для разработки других программ для Windows, приведенных в этой книге. Как Вы увидите, что все Windows-программы имеют некоторые общие черты, – те самые, которые будут включены в каркас приложения. Прежде всего эта глава представляет общий взгляд на программирование для Windows.
2.1. Общий взгляд на программирование в Windows
Целью Windows (как и Win-подобных систем вообще) является предоставление любому пользователю, имеющему минимальные знания о системе, возможности сесть и запустить практически любое приложение без предварительного обучения. Эта цель достигается посредством согласованного пользовательского интерфейса. Теоретически, если Вы можете запустить хотя бы одно Windows-приложение и работать с ним, то сможете работать и со всеми остальными программами. В действительности же, чтобы эффективно использовать каждую программу, некоторое обучение все же необходимо, но, по крайней мере, это обучение будет касаться того, что делает программа, а не того, как с ней обращаться. Пользовательский интерфейс обеспечивает большая часть программного кода Windows-приложения.
Прежде чем продолжить, нужно заметить, что не всякая программа, созданная для Windows, будет иметь Windows-интерфейс. Можно написать Windows-программу, не использующую элементы интерфейса Windows. Для того чтобы написать программу в стиле Windows, Вы должны делать это целенаправленно, применяя приемы, описанные в данной книге. Только те программы, которые используют возможности интерфейса Windows, будут выглядеть и вести себя как Windows-программы. Конечно, Вы можете изменить базовые принципы интерфейса Windows для своей программы, но для этого должна быть очень веская причина, поскольку пользователи Вашей программы будут скорее всего обеспокоены. В общем, любое приложение, которое пишется для Windows, должно использовать нормальный интерфейс и стандартные приемы разработки программ для Windows.
Windows обеспечивает Графический Пользовательский Интерфейс (Graphical User Interface, GUI). Хотя используемые графические устройства и видеорежимы могут различаться, большинство этих различий скрываются Windows. Это означает, что при написании программы Вы можете не беспокоиться о типах видеоадаптеров и графических режимах компьютеров, где эта программа будет использоваться. Таким образом, Вы как программист сами закладываете все возможности графики при написании программы. Многие главы этой книги посвящены правильному управлению экраном. Теперь рассмотрим вкратце основные особенности Windows.
Модель «рабочего стопа». За некоторыми исключениями главная особенность оконного пользовательского интерфейса состоит в том, что он обеспечивает на экране модель «рабочего стола». На обычном письменном столе, как правило, разбросаны различные листы бумаги, одни поверх других, содержащие разные документы или их части. Эквивалентом рабочего стола в Windows является экран, эквивалентами листов бумаги – окна на экране. На столе Вы можете перемещать и перекладывать листы бумаги, и то же самое можно проделывать с окнами. Выбирая какое-либо окно, Вы делаете его активным и помещаете поверх всех остальных. Вы также можете изменять размеры окон и перемещать их в пределах экрана. Короче говоря, Windows позволяет управлять экраном так же, как Вы можете обращаться с предметами на рабочем столе.
Хотя модель «рабочего стопа» является основой пользовательского интерфейса Windows, программа ею не ограничивается. Некоторые элементы интерфейса Windows, такие как линейка прокрутки (scroll bar), ввод с прокруткой (up-down, spin), окна просмотра деревьев (tree view) и панели инструментов (toolbar) предоставляют Программисту большой выбор возможностей, которые Вы можете использовать в своих программах.
Мышь. Как и во всех версиях Windows, мышь используется для большинства операций управления, выбора и рисования. Точнее, интерфейс Windows фактически создан для мыши, хотя позволяет использовать и клавиатуру! Вообще говоря, приложение может игнорировать мышь, но такое поведение программы будет нарушать основные принципы функционирования Windows.
Иконки и растровые рисунки. Windows ориентирован на использование иконок и растровых рисунков (графических образов, bitmaps). Теоретическим обоснованием этого служит давнее утверждение о том, что «рисунок стоит тысячи слов».
Иконка – это небольшой символ, представляющий на экране некоторую операцию или программу. В общем случае операция или программа может быть активизирована щелчком мыши на иконке. Растровые рисунки являются быстрым и простым средством отображения информации. Рисунки могут также использоваться и в качестве элементов меню.
Меню, панели инструментов, панели состояния и диалоги. Кроме стандартных Windows предоставляет несколько специальных типов окон. Наиболее часто используемыми из них являются меню, панель инструментов (toolbar), линейка состояния (status bar) и диалог.
Меню – это специальное прямоугольное окно, которое содержит доступные операции и позволяет пользователю выбирать нужные ему элементы. В программе не нужно описывать функции управления меню, – достаточно просто создать стандартное меню, используя встроенные функции управления.
Панель инструментов (toolbar) – это специальный тип меню, который отображает операции меню в виде небольших графических образов (иконок) и предоставляет пользователю возможность быстрого доступа ко многим командам и опциям. Пользователь выбирает нужный объект щелчком мыши на соответствующей иконке.
Линейка состояния (status bar), как правило, размещается в нижней части окна и отображает информацию о состоянии приложения. В Windows панели инструментов и линейки состояния являются новшеством по сравнению с прежними версиями Windows, где не существовало таких стандартных элементов.
Диалог – специальное окно, обеспечивающее более сложный по сравнению с меню и панелью инструментов интерфейс. Например, Ваше приложение может использовать диалог, чтобы запросить имя файла. За исключением отдельных случаев, практически весь ввод информации производится через диалоги.