в функцию окна, когда вы
Рис. 1.13. Диалоговое окно с сообщением
Аналогично сообщение WM_RBUTTONDOWN попадает в функцию окна, когда вы устанавливаете курсор мыши в окно приложения и нажимаете правую клавишу мыши. В этом случае функция окна вызывает функцию MessageBeep с параметром -1 и затем функцию MessageBox для вывода сообщения о том, что была нажата правая клавиша мыши.
Приведем прототип функции MessageBeep:
void WINAPI MessageBeep(UINT uAlert);
Параметр функции MessageBeep позволяет выбрать один из нескольких системных звуковых сигналов:
Параметр |
Описание |
-1 |
Проигрывание стандартного звукового сигнала с помощью громкоговорителя, установленного в корпусе компьютера |
MB_ICONASTERISK |
Воспроизведение звука, указанного в строке SystemAsterisk раздела [sounds] файла win.ini |
MB_ICONEXCLAMATION |
Воспроизведение звука, указанного в строке SystemExclamation раздела [sounds] файла win.ini |
MB_ICONHAND |
Воспроизведение звука, указанного в строке SystemHand раздела [sounds] файла win.ini |
MB_ICONQUESTION |
Воспроизведение звука, указанного в строке SystemQuestion раздела [sounds] файла win.ini |
MB_OK (значение этой константы равно 0) |
Воспроизведение звука, указанного в строке SystemDefault раздела [sounds] файла win.ini |
Функцию MessageBeep удобно использовать для отладки, задавая ей в качестве параметра значение -1.
При завершении работы приложения функции окна передается сообщение WM_DESTROY, в ответ на которое функция окна помещает в очередь приложения сообщение WM_QUIT, вызывая функцию PostQuitMessage. При выборке сообщения WM_QUIT завершается цикл обработки сообщений и работа приложения.
Все остальные сообщения передаются без изменения функции DefWindowProc для дальнейшей обработки.
Обратим ваше внимание на тот факт, что в ответ на сообщение WM_DESTROY приложение помещает в свою собственную очередь сообщение WM_QUIT. При этом получается, что одно сообщение, появившееся в очереди сообщений, порождает другое. Такая практика широко используется приложениями Windows.Через функцию окна вашего простейшего приложения проходят многочисленные сообщения, некоторые из которых порождают новые сообщения после того, как достигают функции DefWindowProc.
Весь этот поток сообщений незаметен для вашего приложения, однако оно может перехватить любое сообщение и обработать его самостоятельно. В этом заключается сила механизма обработки сообщения. Фактически приложение может подменить частично или полностью любой метод, используемый Windows для реализации той или иной операции с окном или приложением.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий