Docsity
Docsity

Подготовься к экзаменам
Подготовься к экзаменам

Учись благодаря многочисленным ресурсам, которые есть на Docsity


Получи баллы для скачивания
Получи баллы для скачивания

Заработай баллы, помогая другим студентам, или приобретай их по тарифом Премиум


Руководства и советы
Руководства и советы

Разработка программного приложения с использованием интерфейса Windows API курсовая по информатике , Дипломная из Информатика

Разработка программного приложения с использованием интерфейса Windows API курсовая по информатике

Вид: Дипломная

2016/2017

Загружен 12.04.2017

refbank20497
refbank20497 🇷🇺

5

(3)

10 документы

1 / 18

Toggle sidebar

Сопутствующие документы


Частичный предварительный просмотр текста

Скачай Разработка программного приложения с использованием интерфейса Windows API курсовая по информатике и еще Дипломная в формате PDF Информатика только на Docsity! Реферат Пояснительная записка содержит в себе стр.18, 2 приложения. При выполнении курсовой работы на тему ”Разработка програмного приложения с использованием интерфейса Windows API” ставилась задача обучения программированию на уровне системы с использованием стандартных функций Windows. Объект исследования – использования интерфейса программирования Windows Метод исследования – изучение литературы, составления и отладка приложений и отдельных модулей на компьютере. Разработанная программа служит наглядной иллюстрацией техники создания графики при помощи API функций экспортируемых библиотекой GDI32.DLL. Концепция использования API не зависит от выбранного языка программирования, то есть, одинакова для всех абсолютно языков программирования разработанных под операционную систему Windows. Программа также не использует никаких специфических объектно ориентированных библиотек для конкретно выбранного языка типа MFC и поэтому ее части могут быть безболезненно и с наименшей затратой времени переписанны на любой другой язык. Для программной реализации проекта использовалась среда программирования Visual C++ 6.0. КЛЮЧЕВЫЕ СЛОВА: ПРОЦЕДУРА, ОБРАБОТЧИК, API ФУНКЦИИ, КОНТЕКСТ УСТРОЙСТВА, ХЕНДЛ, КИСТЬ, CALLBACK-ПРОЦЕДУРА, СООБЩЕНИЕ СОДЕРЖАНИЕ ВВЕДЕНИЕ 1 АНАЛИЗ, ПОСТАНОВКА ЗАДАЧИ И СФЕРА ЕЕ ПРИМЕНЕНИЯ 2 КРАТКАЯ ХАРАКТЕРИСТИКА ПРОГРАММИРОВАНИЯ ПОД WIN32 3 ОСНОВНАЯ ЧАСТЬ 4 РУКОВОДСТВО ПОЛЬЗОВАТЕЛЯ 4.3 СИСТЕМНЫЕ ТРЕБОВАНИЯ ЗАКЛЮЧЕНИЕ СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ 1 Анализ, постановка задачи и сфера ее применения Концепция операционной системы Windows состоит в том, что программа взаимодействует с пользователем в интерактивном режиме. Это реализуется с помощью графических интерфейсов. Windows имеет набор стандартно выглядящих элементов управления и отлаженный механизм работы с ними. Но часто возникает нужда добавить необходимый несуществующий элемент управления или просто изменить внешний вид элемента. Многие программы такие как проигрователи мультимедия еще с времен Windows 95 используют свой графичский интерфейс пользователя для придания большей привлекательности со стороны пользователей. Каждый разработчик пытается вложить в программу что-то свое, необычное, не похожее на остальных. Конечно, функциональность играет основную роль, но удобный и красивый интерфейс не менее важен и проблема это довольно серъезная. Задача курсовой работы состоит в разработке на языке программирования С++ в среде программирования Microsoft Visual C++ программы для отображения часов реального времени в цифровом и аналоговом виде. Программа должна обладать следующими функциями: • Возможность выбора режима отображения часов(аналоговый или цифровой вид) • Изменение размеров часов • Изменение цвета фона, на котором рисуются часы • Изменение цвета цифр-для цифрового вида, цвета стрелок –для аналогового вида 2 КРАТКАЯ ХАРАКТЕРИСТИКА ПРОГРАММИРОВАНИЯ ПОД WIN32 Все Windows-программы начинают выполнение с вызова функции WinMain(). Функция окна Все Windows-программы должны содержать специальную функцию, которая не используется в самой программе, но вызывается самой операционной системой. Эту функцию обычно называют функцией окна, или процедурой окна. Она вызывается Windows, когда системе необходимо передать сообщение в программу. Именно через нее осуществляется взаимодействие между программой и системой. Функция окна передает сообщение в своих аргументах. Согласно терминологии Windows, функции, вызываемые системой, называются функциями обратного вызова. Таким образом, функция окна является функцией обратного вызова. Помимо принятия сообщения от Windows, функция окна должна вызывать выполнение действия, указанного в сообщении. Конечно, программа не обязана отвечать на все сообщения, посылаемые Windows. Поскольку их могут быть сотни, то большинство сообщений обычно обрабатывается самой системой, а программе достаточно поручить Windows выполнить действия, предусмотренные по умолчанию. В большинстве Windows-программ задача создания функции окна лежит на программисте. Но в любом случае, если сообщение получено, то программа должна выполнить некоторое действие. Хотя она может вызывать для этого одну или несколько API-функций, само действие было инициировано Windows. Поэтому именно способ взаимодействия с операционной системой через сообщения диктует общий принцип построения всех программ для Windows. Цикл сообщений Как объяснялось выше, Windows взаимодействует с программой, посылая ей сообщения. Все приложения Windows должны организовать так называемый цикл сообщений (обычно внутри функции WinMain()). В этом цикле каждое необработанное сообщение должно быть извлечено из очереди сообщений данного приложения и передано назад в Windows, которая затем вызывает функцию окна программы с данным сообщением в качестве аргумента. В традиционных Windows-программах необходимо самостоятельно создавать и активизировать такой цикл. Он является неотъемлемой частью любого приложения Windows. Процесс получения и обработки сообщений может показаться чересчур сложным, но тем не менее ему должны следовать все Windows-программы. Класс окна Каждое окно в Windows-приложении характеризуется определенными атрибутами, называемыми классом окна. (Здесь понятие “класс” не идентично используемому в С++. Оно, скорее, означает стиль или тип.) В традиционной программе класс окна должен быть определен и зарегистрирован прежде, чем будет создано окно. При регистрации необходимо сообщить Windows, какой вид должно иметь окно и какую функцию оно выполняет. В то же время регистрация класса окна еще не означает создание самого окна. Для этого требуется выполнить дополнительные действия. Типы данных в Windows В Windows-программах вообще не слишком широко применяются стандартные типы данных из С или С++, такие как int или char*. Вместо них используются типы данных, определенные в различных библиотечных (header) файлах. Наиболее часто используемыми типами являются HANDLE, HWND, BYTE, WORD, DWORD, UNIT, LONG, BOOL, LPSTR и LPCSTR. Тип HANDLE обозначает 32-разрядное целое, используемое в качестве дескриптора. Есть несколько похожих типов данных, но все они имеют ту же с помощью BeginPaint()). После того, как контекст дисплея освобожден, все изменения, внесенные в него программой, теряются и при повторном получении контекста все действия по изменению контекста необходимо повторять заново. 3 ОСНОВНАЯ ЧАСТЬ Вся работа по выводу времени разбивается на две части: вывод времени в аналоговой и цифровой форме. Вывод времени в цыфровой форме сложности не представлят, тогда как вывод в аналоговой форме может быть описан довольно большим числом функций. Ниже приведена функция для вывода времени в цифровой форме. void DigPaint(HWND hWnd, HDC hdc) { SYSTEMTIME stime; // структура для записи текущего времери GetLocalTime(&stime);//функция получения текущего времени char cBuffer[100]; //переменные для хрениения строки текста char cBufferd[100]; HFONT fontdig1,fontdig2; //описатели для сознания нового шрифта SetBkMode(hdc,TRANSPARENT); // изменение режима отображения фона текста wsprintf(cBuffer,"%d%s%d%s%d",stime.wHour," : ", stime.wMinute,(PSTR)stime.wSecond); wsprintf(cBufferd,"%d%s%d% s",stime.wDay," day ", stime.wMonth," month "); //перевод всех полученных значений в строку fontdig1= CreateFont(50,26,0,0, //создание нового шрифта FW_BOLD, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH, "font1" ); SelectObject(hdc,fontdig1); // функция для выбора вышесозданного шрифта TextOut(hdc,70,105, cBuffer,strlen (cBuffer)); // вывод текста DeleteObject(fontdig1); //функция удаление шрифта fontdig2= CreateFont(20,15,0,0, FW_BOLD, FALSE, FALSE, FALSE, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, PROOF_QUALITY, DEFAULT_PITCH, "font2" ); SelectObject(hdc,fontdig2); TextOut(hdc,115,85,cBufferd,strlen(cBufferd)); DeleteObject(fontdig2); } Приведенная часть программы показывает простоту показывает простоту получения и использования времени в Windows , а также простоту вывода полученного времени на экран. Сначала мы обьявляем сируктуру SYSTEMTIME для хранения времени, даты и некоторых дополнительных параметров. typedef struct _SYSTEMTIME { WORD wYear; WORD wMonth; WORD wDayOfWeek; WORD wDay; WORD wHour; WORD wMinute; WORD wSecond; WORD wMilliseconds; } SYSTEMTIME; Далее следует функция для получения этих значений и занесения в структуру stime типа SYSTEMTIME. GetLocalTime(&stime) У этой функции только один параметр-указатель на структуру, которая должна заполниться полученными данными. Далее с помощью функции wsprintf мы переводим нужные нам данные из структуры stime в строку символов и добавляем нужные нам обозначения и форматирование для корректного вывода. После чего уже нужно готовить режимы вывода текста на экран, так как данные для вывода уже готовы, и находятся в переменных типа char cBuffer и cBuffered . Функция SetBkMode(hdc,TRANSPARENT) имеет два параметра. Первый это описатель контекста устройства вывода, а второй параметр-это режим отображения текста. В данном случае режим TRANSPARENT обеспечивает прозрачность прямоугольника в котором выводиться текст, и таким образом мы получаем вот такой вид вывода времени, когда цвен фона под текстом не отличается от цвета фона вокруг него. Далее по желанию мы можем создать дгугой шрифт. Это производиться с помощью функции CreateFont(). Число ее параметров очень большое, так что приводть их описание не буду. Если шрифт не создавать, то вывод текста будет происходить с использованием стандартного шрифта, который для этого случая будет довольно маленьким. И самый последний этап-это вывод текста на экран с использованием функции TextOut(hdc,115,85,cBufferd,strlen(cBufferd)). Пользоваться этой функцией довольно просто. Нам нужен лишь описатель контекста устройства, координаты вывода текста, строка, которую собираемся выводить, и размер этой строки. Результат выполнения этой части программы можно увидеть на рисунке выше. Загрузка и отображение графического файла будет описана дальше. Результат выполнения этого пункта меню: Описание пунктов меню раздела Analog практически идентично разделу Digital . Для смены фона часов нужно воспользоваться подменю Set BackGround Color. Это меню обеспечивает сменю фона часов на зеленый синий и красный цвет, а также на графический рисунок формата *.bmp. Кроме того с помощью подменю Set Hands Color можно поменять цвет стрелок часов Пункт About обеспечивает пользователя краткой информацией о человеке, который занимался написанием этой программы: И последний пункт меню- Exit, по нажатию на который программа прекращает выполнятся и закрывается: 4.3 Системные требования Для нормальной работы данной программы требуется IBM- совместимый персональный компьютер со следующими параметрами: • процессор Pentium с тактовой частотой 66 MHz и выше; • ОЗУ 16 Мбайт; . Видеокарта ЗирегУСА; . дисковое пространство 1,5 Мбайта; * операционная система МЛпао\$ 95 ЛМТ /98/2000/ХР Заключение В процессе курсовой работы была изучена техника программирования графики в середе Visual C++. В качестве интерфейса программирования был использован Windows API, который доступен для использования в этой среде с помощью заголовочного файла windows.h. Разработана программа «часы», которая может служить наглядным примером использования функций графики интерфейса Windows API. Несмотря на то, что MFC не был задействован в этой программах, алгоритмы и API использовавшиеся могут быть применены и в программе на базе MFC, так как из классов MFC можно всегда получить идентификаторы окон и прочие необходимые для работы с API данные. Это подтверждает эффективность и универсальность интерфейса Windows API.
Docsity logo