Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpora_1-10_bez_vosmogo1 (1).docx
Скачиваний:
3
Добавлен:
16.04.2019
Размер:
133.72 Кб
Скачать

5 Типы Windows-приложений:

Исполняемые программы для Windows разделяются на 2 основных типа: консольные и графические.

При запуске консольного приложения запускается текстовое окно. Можно использовать функции WriteConsole() и ReadConsole(). При запуске из другого консольного приложения запускается еще одно окно, программе выделяется текущая консоль до завершения работы в консоли.

В графическом приложении для вывода команд и инфы открываются окна. Для вывода на экран любого окна программа должна сначала описать его внешний вид и все его свойства. Вместе это называется классом окна. Существует окно с определением класса MessageBox. Представляет собой малое окно с некоторым текстовым сообщением и одной или большим количеством кнопок. В DOS основным средством управления программой являются прерывания.

В Windows прерывания используется системой для своих нужд. Для приложения сущ. аналогический механизм (механизм событий). События преобразуются в сообщения и высылаются обработчикам сообщения. Эти сообщения можно программировать из основной программы. Одной из основ идеологии Windows является меню. Для реализации действий в приложении используются диалоги, создаваемые пользователями (редактор диалогов).

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 //тип окна)

Для работы с окнами в программе выделяют 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 возвращает ноль.

Процедура выполнится необходимые функции для вывода информации в окно , восприятия указаний проявляющий в окне, в том числе в виде выбора пункта меню или указания на очередным шаге диалога и анализ вводим указанных ус клавиатуры , выполнения необходимы действий и вида состояния.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]