Структура
Windows-приложения
Рассмотренная
модель выработки и прохождения сообщений поможет вам понять структуру, принятую
для всех Windows-приложений. Последние два блока в рассмотренной схеме (рис.
3.1) определяют особенности строения любого Windows-приложения. Простейшее из
них должно состоять как минимум из двух функций:
- функции winMain, с которой
начинается выполнение программы и которая «закручивает» цикл ожидания сообщений
(message pump);
- оконной процедуры, которую
вызывает система, направляя ей соответствующие сообщения.
Каждое приложение
в системе, основанной на сообщениях, должно уметь получать и обрабатывать сообщения
из своей очереди. Основу такого приложения в системе Windows представляет функция
winMain, которая содержит стандартную последовательность действий. Однако обрабатывается
большинство сообщений окном — объектом операционной системы Windows.
Примечание
C точки зрения пользователя,
окно — это прямоугольная область экрана, соответствующая какому-то приложению
или его части. Вы знаете, что приложение может управлять несколькими окнами,
среди которых обычно выделяют одно главное окно-рамку (Frame Window). С точки
зрения операционной системы, окно — это в большинстве случаев конечный пункт,
которому направляются сообщения. С точки зрения программиста, окно —это объект,
атрибуты которого (тип, размер, положение на экране, вид курсора, меню, зна-чек,
заголовок) должны быть сначала сформированы, а затем зарегистрированы системой.
Манипуляция окном осуществляется посредством специальной оконной функции,
которая имеет вполне определенную, устоявшуюся структуру.
Функция winMain
выполняется первой в любом приложении. Ее имя зарезервировано операционной системой.
Она в этом смысле является аналогом функции main, с которой начинается выполнение
С-программы для DOS-платформы. Имя оконной процедуры произвольно и выбирается
разработчиком. Система Windows регистрирует это имя, связывая его с приложением.
Главной целью функции winMain является регистрация оконного класса, создание
окна и запуск цикла ожидания сообщений.