- •1 Призначення та функції операційних систем.
- •2 Классификация ос:
- •3 Свойства ос:
- •4 Архитектура компьютерной системы Windows nt
- •5 Типы Windows-приложений:
- •6 Структура оконных вин приложений
- •7 Механизм сообщений Windows
- •8 Стандартные классы окон в Windows
- •9 Реєстрація класів вікон користувача та створення вікон у Windows.
- •10 Создание дочерних окон.
5 Типы Windows-приложений:
Исполняемые программы для Windows разделяются на 2 основных типа: консольные и графические.
При запуске консольного приложения запускается текстовое окно. Можно использовать функции WriteConsole() и ReadConsole(). При запуске из другого консольного приложения запускается еще одно окно, программе выделяется текущая консоль до завершения работы в консоли. В графическом приложении для вывода команд и инфы открываются окна.
Для вывода на экран любого окна программа должна сначала описать его внешний вид и все его свойства. Вместе это называется классом окна. Существует окно с определением класса MessageBox. Представляет собой малое окно с некоторым текстовым сообщением и одной или большим количеством кнопок. В DOS основным средством управления программой являются прерывания.
В Windows прерывания используется системой для своих нужд. Для приложения сущ. аналогический механизм (механизм событий). События преобразуются в сообщения и высылаются обработчикам сообщения. Эти сообщения можно программировать из основной программы.
Одной из основ идеологии Windows является меню.
Иконки и элементы меню записываются в файл ресурсов:
*.RS – текстовый файл, *.RES –бинарный файл.
Для реализации действий в приложении используются диалоги, создаваемые пользователями (редактор диалогов).
6 Структура оконных вин приложений
Windows-приложения. Простейшее Windows-приложение должно состоять как минимум из двух функций:
функции winMain, с которой начинается выполнение программы и которая «закручивает» цикл ожидания сообщений (message pump);
оконной процедуры, которую вызывает система, направляя ей соответствующие сообщения.
Функция winMain выполняется первой в любом приложении. Ее имя зарезервировано операционной системой. Имя оконной процедуры произвольно и выбирается разработчиком. Система Windows регистрирует это имя, связывая его с приложением. Главной целью функции winMain является регистрация оконного класса, создание окна и запуск цикла ожидания сообщений.
Каждое графическое приложение Win32 создает по крайней мере одно окно, называемое главным окном, которое служит основным окном для приложения. Это окно служит главным интерфейсом между пользователем и приложением. Большинство приложений также создает другие окна, явно или неявно, чтобы выполнять задачи, связанные с основным окном. Каждое окно участвует в отображении выходных данных и получения входных данных от пользователя. Когда Вы запускаете приложение, система сопоставляет с ним кнопку панели задач. Кнопка панели задач содержит значок программы и заголовок. Когда приложение активно, его кнопка панели задач отображается в нажатом состоянии.
7 Механизм сообщений Windows
В основе работы ОС Windows и работающи в нем лежит обработка сообщений. Система и приложения выработают такие сообщения на в качестве ответа на каждое события. В wndows каждый поток имеет собственную очередь сообщений, что позволяет потокам работать не зависимо . сообщения имеют структуру данных
typedef struct tagMSG {
HWND hwnd;// дескриптор окна
UNIT message; /// индитфиикатор сообщений
WPARAM wParam; // в каждой сообщений свое значения
LPARAM lParam;//
GWORD time;//количетсво м.сек с момента запуска окна
POINT pt; // положения курсор мыши в экранных координатах
}
MSG;
Основой механизмом сообщения является поток сообщений. Сообщения предназначенные конкретному потоку ставиться в очередь конкретному потоку. Отдельные сообщения могут назначаться несколькими потокам или относиться системе. Для вывода сообщений используется функция MessageBox выводить на эран окно с сообщением и кнопко лии кнопаками выхода
Int MessageBox (
HWND hwnd;//дескриптор окна
LPCTSTR lpText,//сообствено текс содержания сообщений
LPCTSTR lpCaption;// заголовок окна
UNIT uType//тип окна(можно указать использований кнопок)
)
Типы параметров: первый-32 битовой целый, второй 32 битный указатель на строку, 4-ый 32-битное целое. Для работы с окнами в программе выделяют 4 секции : регистрация класса окон, создания главного окна, цикл обработки очереди сообщений, процедура главного окна.
Регистрация классов окон выполняется выполняеться с помощью функции RegisterClassA(WNDCLASS) который содержит один параметр, указатель на структуру в ней содержиться информация о окне. На основе зарегистрированного класса с помощью CreateWindows можно создать экземпляр окна и все его особенность его описать
Цикл обработки очереди сообщений
while(GetMessage(&msg,NULL,0,0))
{
//разрешить использования клавиатуры путем трансляции сообщений о виртуальный клавиш сообщения о цифровых клавиш
TranslateMessage(&msg) ;
//вернуть управления windows и передать сообщения далее процедуре окна
DispatchMessage(&msg) ;
}
GetMessage – выбирает очередное сообщения из цепочек сообщений и помещает в структуру msg.
TranslateMessage –действия касается сообщений WM_KEYDOWN, WM_KEYUP, которые транслируются в WC_CHAR WM_DEADCHAR, WM_SYSKEYDOWN и WM_SYSKEYUP –которые преобразуются в WM_SYSCHAR, WM_SYSDEADCHAR. Смысл преобразования заключаеться в посылке дополнительной сообщений. Выход из цикла ожидания имеет место только в том случае если GetMessage возвращает ноль.
Процедура выполнится необходимые функции для вывода информации в окно , восприятия указаний проявляющий в окне, в том числе в виде выбора пункта меню или указания на очередным шаге диалога и анализ вводим указанных ус клавиатуры , выполнения необходимы действий и вида состояния … Для реализации таких действи надо знать такие функции : прототип функции окна
LRESULT CALLBACK WindowsFunc(
HWND hwnd,//идификатор окна
UINT message,//идификарот сообщений
// уточнают смыл сообщения
WPARAM wParam,
LPARAM lParam,
)