Следующая команда, адресованная subscribe@subscribe.ru, позволит получить
список выпусков из архива:
ARCHIVE comp.soft.prog.cppwin html 2000
WinMain и сообщения
В отличие от консольных приложений, работа оконного приложения состоит
в исполнении функции WinMain. Управление окнами в Windows построено
на механизме сообщений (messages). Такой подход принят во всех современных
оконных системах, но сообщения в них чаще называют событиями (events).
Событие - это структура (см. MSG), в которой описывается тип сообщения
(WM...) и его параментры. Сообщения создаются системой в ответ на внешние
или внутренние события - такие как нажатие кнопок или движение мыши, нажатие
(и отжатие) клавиш клавиатуры. Каждое запущенное приложение имеет свою
очередь сообщений. Из очереди сообщения выбираются один за другим
функцией GetMessage. Ее вызов находится в функции WinMain. После выборки
каждое сообщение транслируется (TranslateMessage) и, если это оконное
сообщение, попадает в соответствующее окно. При этом вызывается его оконная
функция с параметрами из текущего сообщения.
Класс окна
Оконная система Windows подразделяет все окна на "классы". Это не классы
языка C++. К объектно-ориентированному программированию оконный класс
сообще имеет самое отдаленное отношение. Класс окна задает общие свойства
окон, созданных на основе данного класса. Самое главное из этих свойств -
это функция окна (оконная функция). Помимо оконной функции в классе
задаются стили окна, иконка, курсор, цвет фона и название класса.
Как правило, для наших окон нам нужен свой собственный класс. Однако, мы
можем использовать и "предопределенные" классы. Так, например, класс
"BUTTON" всегда используется для создания кнопок в диалоговых окнах.
Обратная связь
Хочу обратить ваше внимание на сайт моей коллеги - Голубь Надежды
Григорьевны, человека с большим опытом как преподавания, так и
программирования на более чем 20-ти языках:
http://www.anriintern.com/computer/c++/
Очень надеюсь, что на нем вы почерпнете то, чего вам недостает в моей
рассылке.
Надежда Григорьевна также справедливо заметила мне, что РАБОТАЮЩЕЙ версией
Borland C++ 5 является версия 5.02.
По поводу ваших писем. Я заметил за собой, что охотнее я отвечаю на
небольшие письма, в которых полностью описывается проблема, так что не
приходится переспрашивать. А еще я не люблю письма в HTML. Каждый день
приходит по 10-15 писем, разобраться и ответить я успеваю на 8-10 из них.
Вот такие у меня странности...
Приятно читать ваши благодарности, но есть конечно и критика. Часто
справедливая. Пожалуй, я не совсем отдаю себе отчет в том зачем я делаю эту
рассылку - просто делаю и все... Есть, конечно и методические ошибки. Вы,
конечно, обратили внимание что рассылка вроде для начинающих, а вроде бы и
не совсем... С одной стороны хочется многое вам рассказать о Windows, чего
сам понял и изучил, а с другой - я понимаю что большинство из вас
начинающие и конечно нужно идти с азов. Но в любом случае, я постараюсь
чтобы рассылка выходила и оставалась интересной всем.
*************************************************************************
Количество подписчиков: 5826
Архив Рассылки
Никита Зимин
Nikita_Zeemin@mail.ru