Операционные системы. Программирование в операционной среде Windows
48 вызова служит сообщение. Функция окна, получив сообщение, выполняет соответствующие действия. Функция TranslateMessageQ необходима в тех программах, которые обрабатывают ввод с клавиатуры. Эта функция преобразует сообщения о нажатии клавиш (WM KEYDONN и WM KEYUP) в символьные сообщения (WM CHAR), содержащие информацию об ASCII- коде нажатой клавиши. 4.5. Каркас Windows приложения Архитектура Windows-приложений основана на принципе взаимодействия программ и ОС через механизм передачи сообщений. Поэтому все графические Windows-приложения имеют общий каркас, на основе которого можно создавать различные приложения. Каркас минимального Windows- приложения позволяет создать стандартное окно с заголовком, системным меню, тремя размерными кнопками. Его можно перемещать и менять размеры. В ОС Windows, версий 2005 и выше, каркас позволяет создать главное окно приложения, имеющее больше возможностей, например меню с пунктами Exit и About. Мы будем рассматривать каркас минимального Windows- приложения. Каркас Windows- приложения содержит две функции WinMain () и функцию окна WinFimcQ. Главная функция выполняет все действия, описанные в пункте 4.4. Функция окна в каркасе Window-приложения обрабатывает только одно сообщение WMDESTROY. Сообщение WM DESTROY посылается при закрытии пользователем окна приложения. При обработке этого сообщения вызывается функция PostQuitMessage(), которая посылает приложению сообщение WM QUIT, что приводит к завершению цикла обработки сообщений в главной функции программы и завершению выполнения всей программы. Все сообщения, не обрабатываемые функцией окна, передаются для обработки в функцию DefWindowProcQ. Эта функция очищает очередь сообщений от всех ненужных сообщений. Исходный текст каркаса минимального Windows-приложения приведен в Приложении 2. 4.6. Вывод текстовой и графической информации в окно нриложения 4.6.1. Вывод панелей с сообщениями Для вывода в приложении панели сообщений предназначена функция MessageBoxQ: int MessageBoxA(HWND hWnd, LPCTSTR IpText, LPCTSTR IpCaption, UINT uType ); Параметр hWnd - дескриптор окна, параметр IpText - адрес строки сообщения, IpCaption - адрес строки заголовка панели сообщения, иТуре - стиль панели сообщения.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy