LEKCII (Лекции)

2017-12-28СтудИзба

Описание файла

Файл "LEKCII" внутри архива находится в папке "Лекции". Документ из архива "Лекции", который расположен в категории "". Всё это находится в предмете "api windows" из 6 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "лекции и семинары", в предмете "api windows" в общих файлах.

Онлайн просмотр документа "LEKCII"

Текст из документа "LEKCII"

Программирование в среде WINDOWS. 1

Графические функции GDI и средства GDI 2

Аппаратная независимость 3

Схема процесса создания Windows программы. 4

Файл определения модуля. 5

Сообщения. 6

Окна 8

Меню. 20

Диалоговые панели 34

Органы управления 45

Контекст. 67

Логическая и физическая системы координат...................................................................................................84

Рисование…………………………………………………………………………………………….……...………99

Программирование в среде WINDOWS.

Введение.

Вся внутренняя деятельность системы Windows в значительной степени базируется на трех подсистемах:

системе графического приборного интерфейса;

системе обеспечения многозадачного режима;

системе обеспечения аппаратной независимости.

Эти системы предъявляют определенные требования к форме и содержанию программ, работающих под Windows. Невыполнение таких требований ведёт к неправильному функционированию программы, зачастую и к нарушению работы всей системы Windows. Поэтому следует кратко остановиться на принципах работы каждой из этих систем.

Графический Приборный Интерфейс.

Графический приборный интерфейс, или GDI (Graphics Device Interf/асе), является связующим звеном между программой и графическим устройством вывода и служит для представлении программой визуально ориентированной информации пользователю. GDI представляет собой библиотеку процедур, которые обеспечивают создание графического интерфейса и управление им. Эта библиотека доступна как для Windows так и для любой прикладной программы.

Display Context.

Функции GDI работают с различными устройствами ввода. При этом имеется необходимость хранения большого количества информации о данном устройстве вывода, его состоянии, а также о текущих графических средствах, используемых программой. Вся эта информация хранится в специально организованной структуре данных, которая называется dispaly context или device context.

Использование DC обусловлено следующими причинами. Прежде .всего, в каждый конкретный момент времени используется лишь небольшая часть возможностей, Рассмотрим качестве примера рисование прямоугольника. Для того чтобы полностью контролировать представление прямоугольника на охране, следует определить его положение в окне. Нужно также определить цвет и границы прямоугольника. Далее программист может пожелать переопределить вид границы (например, сделать ее непрерывной или пунктирной линией). Дополнительно следует определить, валяется ли прямоугольник закрашенным и если да, то каким цветом. И, наконец, программа должна управлять взаимодействием прямоугольника с уже существующими ив экране рисунками.

Вес графические средства в Windows являются немодифицируемыми, прикладная программа не может полностью заменить тот или иной объект в DC во другой. Поскольку несколько программ могут одновременно использовать одни и те же графические средства, система не допускает их изменения и гарантирует каждой программе постоянство используемых графических средств ресурсов.

Очень важ­ными являются понятия отсекание.

В системе Windows для любого открытого на экране окна существует вероятность соседства (или даже перекрали») с одним или несколькими окнами. GDI управляет своими функциями таким образом, чтобы не допустить графического вывода вне границ окна, которое использует функции GDI. Более того, GDI обеспечивает графический вывод в пределах рабочей области окна, чтобы не нарушить графические объекты нерабочей области. Такой подход и называется отсеканием. Действие функций графического вывода ограничено областью отсекания. Windows устанавливает параметры области отсекания перед передачей его прикладной программе. Как уже отмечалось, в Windows для программы имеются две возможности получения доступа к DC: функции BeginPalnt и GeiDC. При использовании функции BeginPaiot размеры области отсекания устанавливаются так, чтобы содержать именно тот участок рабочей области окна, который должен быть обновлен. В случае использования функции GetDC область отсекания охватывает всю рабочую область окна. Программа может использовать функции GDI для изменения размеров области отсекания, но она не в состоянии сделать область отсекания больше видимой части рабочей области окна. Таким образом, Windows охраняет множественные окна от вмешательства в дела (т.е. рабочие области) друг друга.

Хотя Windows самостоятельно проводит всю работу, связанную с изменением размеров окна, программа может реагировать на увеличение или уменьшение размеров окна по-разному. Эта разница в реакции программы на изменение размеров окна называется, масштабированием.

Возможность масштабирования является необходимой для Windows, поскольку позволяет использовать одни и тс же графические функции, независимо от размеров окна.

В Window существуют 8 методов (режимов) масштабирования.

Графические функции GDI и средства GDI

Графические функции GDI включают в себя следующие функции: определение положения внутри рабочей области, операции с единичными точками экрана, рисование текста, линии и фигур, заполнение фигур и областей, манипулирование битовыми массивами и рисование пиктограмм в рабочей области.

Следует отмстить, что все графические функции GDI в той или иной мере используют графические средства, или ресурсы, имеющиеся а Windows. Windows располагает определенным набором предопределенных графических средств, которые могут быть использованы в программе (например, перо для рисования черной непрерывной линии или системный шрифт). Кроме того, программист может создавать с помощью функций Windows и специальных программ свои собственные графические средства, например, шрифты. Но, независимо от источника возникновения, все графические средства должны находиться в DC, чтобы графические функции GDI могли их использовать. В DC имеется возможность хранения только одного экземпляра каждого графического средства.

Управление памятью и процессорным временем.

Подсистема управления программами не обеспечивает квантования времени между приложениями Windows. Приложения Windows сделаны таким образом, что они сами "добровольно" отдают друг другу процессорное время, обеспечивая так называемую невытесняющую мультизадачность (nonpreemptive multitasking), используя аппарат сообщений. Windows NT создает отдельную виртуальную машину. Благодаря этому приложения Windows NT изолированы друг от друга. Использование отдельных виртуальных машин позволяет реализовать вытесняющую мультизадачность (preemptive multitasking) с выделением каждому приложению квантов времени.

Оперативная память делится на страницы, приложению выделяется целое число страниц. Защита от несанкционированного доступа осуществляется на аппаратном уровне. Приложение Windows состоят из сегментов кода и сегментов данных. В зависимости от модели памяти приложение может иметь один или несколько сегментов кода и один или несколько сегментов данных.

Сегменты приложения Windows получают дополнительный атрибут - тип сегмента. Существуют сегменты с фиксированным расположением в оперативной памяти (fixed), перемещаемые (moveable) и удаляемые (discardable). Перемещаемые сегменты могут менять свое расположение в адресном пространстве. Управляет этим, незаметным для приложений, процессом операционная система Windows.

Windows - многозадачная операционная система. Поэтому такой ресурс, как оперативная память, используется совместно всеми работающими параллельно приложениями или различными копиями одного и того же приложения, запущенного несколько раз. В процессе работы вы запускаете и завершаете различные приложения, что приводит к фрагментации непрерывного адресного пространства. Используя механизм перемещения сегментов, основанный операционная система Windows по мере необходимости "уплотняет" оперативную память, высвобождая непрерывное адресное пространство для запуска новых приложений.

Удаляемые (discardable) сегменты обычно используются для хранения выполняемых сегментов или сегментов констант. Если операционной системе Windows требуется получить в свое распоряжение область памяти, она может уничтожить удаляемый сегмент и забрать распределенную для него память. Если впоследствии потребуется восстановить содержимое удаляемого сегмента, Windows выполняет чтение данных сегмента из соответствующего файла.

Помимо описанных выше атрибутов сегменты могут иметь еще два. Можно создать сегменты, загружаемые при запуске приложения (preload) и загружаемые при обращении к ним (loadoncall). Сегменты типа loadoncall не загромождают оперативную память, так как после запуска приложения они остаются на диске и загружаются в память только при необходимости. Причем при составлении программы вам достаточно описать сегмент как loadoncall, после чего Windows будет сама его загружать при обращении к сегменту со стороны приложения.

Windows - приложения могут пользоваться так называемой виртуальной памятью. Виртуальная память позволяет создать иллюзию работы с оперативной памятью огромного размера - десятки и сотни мегабайт. Реально в физической памяти располагаются только те области виртуальной памяти, к которым чаще всего происходит обращение. Остальные области памяти (страницы памяти) хранятся на диске в специальном файле. Виртуальная память облегчает работу с очень большими массивами данных. Можно, например, получить у Windows буфер размером 10 Мбайт и заполнить его содержимым файла, затем выполнить сортировку этого буфера и записать результат в тот же самый или другой файл.

Аппаратная независимость

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

Аппаратная независимость означает, что прикладная программа, рабо­тающее в среде Windows на некотором компьютере с определенным набором технических средств будет работать на любом компьютере, на котором работает система Windows. Таким образом, в системе Windows программист свободен при создании программ от особенностей и огра­ничений, накладываемых конкретными техническими устройствами.

Windows обеспечивает аппаратную независимость путем определения минимально необходимых свойств, которыми должны обладать техни­ческие устройства. Этот набор свойств является минимально необхо­димым для функционирования процедур Windows.


Схема процесса создания Windows программы.

Исходные файлы программы на языке Си компилируются в объектные файлы. Компоновщик собирает приложение и библиотечные файлы с помощью заголовочного файла, который служит для согласования типов и имён переменных и др. объектов. Файл определения модуля определяет, какие операции разрешены с данными и кодом программы.

Ресурсы представляют собой пиктограммы, шрифты, панели и т.д. После создания RC- файла его следует "скомпилировать" в двоичный аил ресурсов. Двоичные описания ресурсов загружаются в программу гораздо быстрее, чем, текстовые, поскольку программе не приходится их интерпретироватъ. Компилятор ресурсов генерирует двоичные описания ресурсов, определенных в текстовом виде и объединяет их с двоичными, хранящимися во внешних файлах. Результатом является файл расширением .RES. Для того чтобы скомпилировать RС - файл в RES - файл надо запустить компилятор ресурсов.

Последним шагом в процессе компиляции и компоновки программ всегда является связывание двоичного файла ресурсов (RES) и программного файла (ЕХЕ) в единый Windows - выполнимый файл (ЕХЕ). Для этого снова используется компилятор ресурсов. Эта команда является последней при создании Windows - программы,

Файл определения модуля.

Первая строка необходима для 16-битных приложений, для 32-битных не нужна.

EXETYPE WINDOWS

Директива CODE имеет следующий синтаксис:

CODE

[FIXED | MOVEABLE]

[DISCARDABLE | NONDISCARDABLE]

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5137
Авторов
на СтудИзбе
440
Средний доход
с одного платного файла
Обучение Подробнее