Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

VC Лекции PDF / VC 08 Лек Сообщения

.pdf
Скачиваний:
36
Добавлен:
15.02.2015
Размер:
145.91 Кб
Скачать

Visual C++

Лекция 4

1

Л Е К Ц И Я 4

СООБЩЕНИЯ WINDOWS ________________________________________________________________ 1

СООБЩЕНИЯ WINDOWS

При запуске приложения Windows вызывает функцию WinMain() объекта приложения, поэтому наше знакомство с программой начнется именно с объекта приложения. С нашей точки зрения объект приложения должен выполнять три задачи: запустить программу, создать главное окно и организовать передачу сообщений Windows в главное окно и из него.

Что такое «сообщения Windows»? Это особые сигналы с минимальным объемом служебных данных, посредством которых различные объекты в среде Windows общаются между собой. Например, когда пользователь завершает работу программы, Windows посылает объекту приложения сообщение WM_QUIT. Если же пользователь изменяет размеры окна программы, она получает сообщение WM_SIZE. Наиболее интересные сообщения Windows перечислены в таблице.

Сообщение Windows

Значение

WM_ACTIVATE

Окно становится активным или неактивным

WM_ACTIVATEAPP

Активизируемое окно принадлежит другому приложению

WM_CANCELMODE

Отмена системного режима

WM_CHILDACTIVATE

Активизируется дочернее окно

WM_CLOSE

Окно было закрыто

WM_CREATE

Была вызвана функция создания окна

WM_DESTROY

Была вызвана функция уничтожения окна

WM_ENABLE

Окно было заблокировано или разблокировано WM_ENDSESSION

WM_ENDSESSION

Сеанс работы завершается

WM_ENTERIDLE

Начало пассивного цикла, которым можно воспользоваться для нужд

программы

 

WM_ERASEBKGND

Необходимо стереть фон окна

WM_GETMINMAXINFO

Получение информации о размерах окна

WM_GETTEXT

Получение текста, связанного с окном

WM_GETTEXTLENGTH

Получение длины текста, связанного с окном

WM_ICONERASEBKGND

Необходимо стереть фон окна

WM_KILLFOCUS

Окно теряет фокус ввода

WM_MENUCHAR

Пользователь нажал клавишу, не используемую в текущем меню

WM_MENUSELECT

Выбрана команда меню

WM_MOVE

Окно переместилось

WM_PAINT

Перерисовать часть окна

WM_PAINTICON

Перерисовать часть значка приложения

WM_PARENTNOTIFY

Окно создается или уничтожается

WM_QUERYENDSESSION

Получена команда на завершение сеанса

WM_QUIT

Завершение работы приложения

WM_SETFOCUS

Окно получило фокус ввода

WM_SETFONT

Изменился шрифт

WM_SETREDRAW

Снимает флаг перерисовки

WM_SETTEXT

Задает текст в заголовке окна

WM_SHOWWINDOW

Окно необходимо скрыть или вывести на экран

WM_SIZE

Изменился размер окна

Объект приложения отсылает большинство полученных сообщений объекту главного окна (не считая WM_QUIT, которое завершает работу объекта приложения). Объекты в программе на Visual C++ интенсивно общаются друг с другом. Это вполне понятно, поскольку программа делится на четыре главных объекта и каждому из них иногда приходится обращаться к услугам других объектов. На приведенной ниже схеме показано, как организовано взаимодействие четырех главных объектов в программе на Visual C++. Упомянутые методы более подробно описываются в дальнейших работах.

Выжол Ю.А.

Visual C++

Лекция 4

2

Код объекта приложения содержится в файле welcome.cpp. Наибольший интерес для нас представляет метод Initlnstance(), поскольку именно в нем программа собирает остальные классы (главного окна, документа и вида) и объединяет их в шаблон документа, в соответствии с которым объект приложения организует работу программы:

Выжол Ю.А.