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

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,

)

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