Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Общие принципы и средства программирования для Windows. Язык Windows. Краткий обзор среды Windows. Преимущества использования Windows.

Читайте также:
  1. D. Программы использования
  2. I. ОБЩИЕ ПОЛОЖЕНИЯ
  3. I. ОБЩИЕ ПОЛОЖЕНИЯ
  4. I. ОБЩИЕ ПОЛОЖЕНИЯ
  5. I. ОБЩИЕ ПОЛОЖЕНИЯ
  6. I. ОБЩИЕ ПОЛОЖЕНИЯ
  7. I. ОБЩИЕ ПОЛОЖЕНИЯ

Основными языками, используемыми Microsoft для создания 16- и 32-разрядных приложений Windows, являются С и C++. Все основные программы (например, сама Windows) написаны на С или C++. С этой версией компилятора Microsoft поставляет все необходимые средства для создания программ Windows на С и C++.

Можно разрабатывать приложения для 16- или 32-разрядной версии Microsoft Windows, 16-разрядная Windows — это графическая среда, работающая как надстройка DOS. Windows 95 и Windows NT, являются полными 32-разрядными операционными системами. Все эти среды имеют встроенную поддержку мыши и меню, а также возможность запускать как приложения, написанные специально для Windows, так и обычные программы DOS.

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

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

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

Windows предоставляет программисту несколько основных возможностей:

· стандартный графический интерфейс;

· многозадачность;

· объектно-ориентированный подход;

· управление памятью;

· независимость от конкретного оборудования;

· использование динамически подключаемых библиотек (dynamic-link libraries, DLLs).

Общие принципы и средства программирования для Windows. Графический интерфейс пользователя. Многозадачная среда. Преимущества ввода посредством очереди.

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

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

Многозадачная среда Windows позволяет выполнять одновременно несколько приложений, а также несколько копий одного и того же приложения. Но в каждый момент времени лишь одно приложение может использовать процессор. Очень важно различать приложение, которое просто находится в процессе выполнения, и приложение, использующее процессор в данный момент. Есть еще третье важное состояние: приложение может быть активным. Активным приложением называется то, с которым работает пользователь. В заданный момент времени может существовать лишь одно активное приложение, подобно тому, как в данный момент только одно приложение может использовать процессор. Тем не менее, в системе может быть любое количество параллельно выполняемых процессов. Разделение процессорного времени, называемое квантованием (time slicing), находится в компетенции Windows. Только Windows распоряжается выделением процессора, используя очереди сообщений.

До появления многозадачности в 16-разрядной Windows приложения считали возможным полностью управлять ресурсами компьютера, включая устройства ввода/вывода, память, дисплей и даже сам центральный процессор. Под управлением Windows все эти ресурсы должны быть доступны сразу нескольким программам. Например, управление памятью осуществляется Windows, а не прикладной программой.

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

Ввод поступает в общем формате, называемом сообщением ввода (input message). Все сообщения ввода содержат информацию о системном времени, состоянии клавиатуры, коде нажатой клавиши, положении мыши и состоянии ее кнопок, а также о том, от какого устройства получено сообщение.

Сообщения от клавиатуры, мыши и таймера имеют одинаковый формат и обрабатываются сходным образом. С каждым сообщением Windows связывает аппаратно- независимый виртуальный код клавиши, который обозначает клавишу вне зависимости от того, на какой клавиатуре она находится. Кроме того, Windows сообщает зависимый от устройства скан-код, генерируемый клавиатурой, а также состояние других клавиш, в частности <NUM LOCK>, <ALT>, <SHIFT> и <CTRL>.

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

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

47. Общие принципы и средства программирования для Windows. Объектный подход: сообщения. Управление памятью. Независимость от оборудования. Динамически подключаемые библиотеки. Новый формат исполняемых файлов Windows.

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

Сама Windows также может генерировать сообщения, как, например, сообщение "конец сеанса работы", которым Windows уведомляет все приложения о завершении работы системы.

Оценивая значимость механизма сообщений, имейте в виду следующие соображения. Во-первых, именно система передачи сообщений обеспечивает многозадачность в Windows. Эта система позволяет Windows распределять процессорное время между несколькими приложениями. Каждый раз, когда Windows посылает программе сообщение, она также выделяет этой программе процессорное время. На самом деле программа получает возможность использовать процессор только тогда, когда ей приходит сообщение. Во-вторых, сообщения позволяют программе реагировать на внешние события. Такие события могут инициироваться пользователем, системой Windows, самой программой, а также другими приложениями. Каждый раз при появлении события Windows направляет соответствующие сообщения всем заинтересованным приложениям.

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

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

Приложения Windows могут вызывать процедуры из других исполняемых файлов. Файлы, содержащие такие процедуры, называются динамически подключаемыми библиотеками. У Windows есть возможность связать программу с DLL во время выполнения программы. Сама Windows является набором DLL. Чтобы обеспечивать все эти возможности, Windows пользуется исполняемыми файлами специального формата, который называется новым форматом исполняемых файлов (New Executable Format). Файлы этого формата включают в себя информацию, которая необходима Windows для управления сегментами кода и данных и осуществления динамической компоновки.

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

В Windows для каждого устройства нужен всего один драйвер.

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

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

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

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

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

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

Новый формат включает также дополнительную информацию о каждом сегменте кода или данных. Как правило, сегменты кода объявляются подвижными (moveable) и выгружаемыми (discardable), а сегменты данных объявляются подвижными, но не выгружаемыми. Это позволяет Windows перемещать сегменты кода и данных в памяти, и даже выгружать сегменты кода при нехватке памяти. Если Windows позже потребуется выгруженный сегмент кода, она сможет загрузить его из соответствующего исполняемого файла. Еще одна возможная характеристика сегмента называется «загружаемый при обращении» (load on call). Она указывает на то, что сегмент кода программы или библиотеки вообще не будет загружен в память до тех пор, пока одна из входящих в него функций не будет вызвана из другого сегмента.

 

 

48. Программирование для Windows: принципы и понятия. Окно Windows. Элементы интерфейса Windows.

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

Для пользователя окно Windows, независимо от владеющего им приложения, представляется в виде прямоугольной области экрана дисплея. С другой стороны, для приложения окно — это прямоугольная область экрана, непосредственно управляемая программой. Эта программа имеет возможность управлять всем, что относится к главному окну, в том числе его формой и размерами. Когда пользователь запускает программу, окно создается. Каждый раз, когда пользователь обращается к меню программы, приложение реагирует на это действие. При закрытии окна приложение завершает работу. Многочисленные окна обеспечивают пользователю доступ к возможностям многозадачности Windows. Разделив экран между разными окнами, пользователь может направить ввод определенному приложению, выбрав при помощи мыши или клавиатуры одно из параллельно выполняющихся приложений. После этого Windows перехватывает пользовательский ввод и распределяет необходимые ресурсы (например, процессор) соответствующим образом.

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

 

 

49. Программирование для Windows: принципы и понятия. Рамка окна. Заголовок окна. Кнопка оконного меню. Оконное меню. Кнопка свертывания окна. Кнопка развертывания окна.

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

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

Название приложения указано в заголовке окна (title bar). Заголовок всегда располагается в верхней части соответствующего окна. Заголовки окон помогают следить, какие приложения работают в данный момент.

Каждое приложение Windows имеет кнопку оконного меню (control box). Она расположена в левом верхнем углу окна и имеет вид квадрата с горизонтальной чертой посередине.

Оконное меню (system menu) вызывается щелчком на кнопке (или значке) оконного меню. В это меню входят стандартные команды управления окном: Restore (восстановить). Move (переместить), Size (изменить размер), Minimize (свернуть), Maximize (развернуть), Close (закрыть).

Каждое приложение Windows З.х или Windows NT изображает в верхнем левом углу экрана две кнопки с вертикальными стрелочками. Одна из них называется кнопкой свертывания окна (minimize box). На ней изображена стрелочка вниз. При нажатии на эту кнопку окно сворачивается в небольшой значок (icon), называемый также пиктограммой.

Кнопка развертывания окна (maximize box) находится в правом верхнем углу окна. На ней изображена стрелочка вверх. Эта кнопка используется для развертывания окна на весь экран. Таким образом, окно покроет собой все остальные окна.

 

 

50.Программирование для Windows: принципы и понятия. Вертикальная полоса прокрутки. Горизонтальная полоса прокрутки. Панель меню. Рабочая область окна.

Программирование для Windows: принципы и понятия

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

Вертикальная полоса прокрутки

При необходимости приложение может отобразить вертикальную полосу прокрутки (scroll bar). Она расположена непосредственно снизу от кнопки развертывания окна и имеет на концах две кнопки со стрелочками вверх и вниз, а также бегунок, перемещающийся между этими кнопками. Бегунок отображает положение видимой в окне части документа относительно документа в целом. Полоса прокрутки используется для того, чтобы выбрать, какую страницу документа показывать в окне. Если нажать мышью одну из кнопок, документ сместится на одну строку в соответствующем направлении. Одно из лучших применений вертикальной полосы прокрутки — быстрое перемещение по многостраничному документу.

Горизонтальная полоса прокрутки

Приложение может также использовать горизонтальную полосу прокрутки. Она отображается в нижней части окна. Горизонтальная полоса прокрутки работает аналогично вертикальной, позволяя выбирать горизонтальное смещение окна в пределах документа. Если нажать мышью кнопку со стрелкой вправо или влево, документ сместится на одну позицию в соответствующем направлении. Если перетаскивать мышью бегунок, документ будет быстро смещаться вправо или влево. Одно из лучших применений горизонтальной полосы прокрутки — быстрое перемещение по столбцам электронной таблицы.

Панель меню

Панель меню (menu bar) располагается под заголовком окна. Панель меню используется для выбора пунктов меню и подменю. Вы можете сделать выбор нажатием мыши или использовать комбинации горячих клавиш. Такие комбинации обычно состоят из клавиши <ALT> и подчеркнутой буквы в названии пункта меню, например, "F" в пункте File.

Рабочая область окна

Рабочая область (client area) обычно занимает большую часть любого окна. Рабочая область — основное место вывода информации приложения. Управление рабочей областью входит в обязанности приложения. Более того, только приложение имеет право выводить информацию в рабочую область.


 

51. Программирование для Windows: принципы и понятия. Класс окна в C/C++. Windows и объектно-ориентированные программы. Значки Windows. Курсоры Windows. Текстовые маркеры.

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

Класс окна в C/C++

Основные элементы окна помогают создать стандартный вид приложения. Бывают случаи, когда приложению необходимо создать два окна, имеющих сходный вид и поведение. создаются два окна с идентичным видом и функционированием, они имеют одинаковый класс окна (window class). Несмотря на это, разные окна могут иметь различные параметры.

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

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

Windows и объектно-ориентированные программы

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

Значки Windows

Значок (icon) — это небольшой графический объект, ассоциирующийся для пользователя с определенным действием, понятием или продуктом. Значки могут быть очень мощным инструментом. Они хороши для привлечения внимания пользователя, например, при выдаче предупреждающего сообщения, а также для представления возможностей выбора. Windows предлагает несколько стандартных значков, Можно также создавать ваши собственные цветные значки при помощи редактора ресурсов из пакета компилятора C++.

Курсоры Windows

Курсоры (cursors) также являются графическими объектами, в отличие от обычного мигающего курсора DOS. Графический курсор перемещается в соответствии с движением мыши. Этот символ может изменять свой вид, отражая определенные действия Windows. В Windows имеются несколько готовых курсоров: диагональная стрелка, вертикальная стрелка, песочные часы, крестик, курсор в виде буквы I и некоторые другие. можно использовать редактор ресурсов из пакета C++ для создания своих собственных курсоров.

Текстовые маркеры

Текстовый маркер (caret) — символ, помещаемый приложением в окно, чтобы указать пользователю место, в котором появится набираемый текст. Как правило, ввод от мыши связан с курсором мыши, а ввод с клавиатуры — с текстовым маркером. Единственный стандартный текстовый маркер, создаваемый автоматически, при отображении окна диалога — это текстовый маркер в виде вертикальной черты. В отличие от значков и курсоров мыши приложение должно создавать свои текстовые курсоры, пользуясь специальными функциями: других стандартных текстовых курсоров не существует.

52. Программирование для Windows: принципы и понятия. Окна сообщений Windows. Окна диалога Windows. Шрифты Windows. Растровые изображения Windows. Перья Windows. Кисти Windows.

Окно сообщения (message box)- графический объект Windows. Окно сообщений представляет собой раскрывающееся (pop-up) окно, содержащее заголовок, значок и сообщение.

Приложение должно задать заглавие сообщения и само сообщение, а также указать, какой стандартный значок использовать (если надо) и какие из стандартных вариантов ответа допустимы (например, ОК).

Стандартные комбинации вариантов ответа включают Yes/No (Да/Нет), Yes/No/Cancel (Да/Нет/Отмена), OK/Cancel (ОК/Отмена) и Retry/Cancel (Повтор/Отмена). Стандартные значки включают IconHand (рука), IconQuestion (знак вопроса), IconExclamation (восклицательный знак), and IconAsterisk (звездочка).

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

Шрифт (font) — это графический объект или ресурс, определяющий полный набор символов одной гарнитуры. Гарнитура (typeface) — это основной дизайн символа, задаваемый определенными засечками и толщиной штрихов.

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

· они используются для рисования картинок на дисплее

· используются для создания кистей

Недостатки: большие изображения могут занимать участки памяти непредсказуемого размера, может содержать только картинку, т.е.нет доступа к отдельным компонентам изображения.

Перо (pen) используется для рисования линий и контуров геометрических фигур. Оно имеет три основных параметра: толщину, тип линии (пунктир, точки, сплошная) и цвет.

Windows использует кисть (brush) для закрашивания областей определенным цветом или узором. Минимальный размер кисти 8х8 точек и, подобно перьям, имеют три основных параметра: размер, шаблон и цвет. Шаблон может представлять собой чистый цвет, различную штриховку или любой заданный пользователем узор.

 

53. Программирование для Windows: принципы и понятия. Прием и передача сообщений Windows. Формат сообщения Windows. Как создаются сообщения Windows. Ответ на сообщение Windows. Цикл обработки сообщений.

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

Windows предоставляет программе доступ к тысячам функций. Вызовы этих функций обрабатываются в трех основных модулях: KERNEL, GDI (graphics device interface — интерфейс графического устройства) и USER. Модуль KERNEL отвечает за управление памятью, загрузку и запуск приложений и распределение времени. Модуль GDI содержит все функции для отображения графики. Модуль USER заботится обо всех остальных потребностях приложения.

Сообщения уведомляют программу, что произошло интересующее ее событие, каждое сообщение адресовано некоторому окну. Единственная система распределения сообщений — системная очередь сообщений. Каждая выполняемая программа имеет и собственную очередь.

В 16-разрядной Windows каждое сообщение, независимо от типа, имеет четыре параметра: описатель окна (16-разрядное слово) - (window handle) - идентифицирует объект, расположенный в подвижной области памяти, позволяет Windows эффективно управлять памятью, оставляя эту деятельность невидимой для приложений.

тип сообщения (16-разрядное слово) - один из идентификаторов, определенных в файле WINDOWS.H.. Самый часто встречаемый в обычных программах С вид сообщений — оконные сообщения. Они включают такие сообщения, как WM_CREATE, WM_PAINT, WM_CLOSE, WM_COPY, WM_PASTE и другие.

один параметр типа WORD (16-разрядное слово) и один параметр типа LONG (32-разрядное слово). Первый параметр сообщения — описатель окна, которому сообщение адресовано.

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

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

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

цикл обработки сообщений (message loop) выполняется классом CWinAPPH3 библиотеки MFC. Цикл обработки сообщений отвечает за распределение сообщений, переданных Windows в программу.

два фактора, влияющие на последовательность обработки сообщений: очередь сообщений и приоритет приложения(Windows устанавливает ему приоритет 0. В процессе выполнения приложения оно может изменять приоритет в пределах от -15 до +15)

Вне зависимости от источника сообщение сперва попадает в системную очередь. Сообщения помещаются в очередь - первым вошел — первым вышел (first in — first out, FIFO).

Есть три типа асинхронных(Windows отодвигает сообщение в конец очереди)сообщений: перерисовки, таймера и завершения.

54. Программирование для Windows: принципы и понятия. Доступ к функциям Windows. Использование соглашения о вызовах языка Pascal. Заголовочный файл Windows: WINDOWS.H. Компоненты приложения для Windows.

В традиционных 16-разрядных приложениях управление функциями передается путем дальнего межсегментного вызова. Межсегментный вызов необходим потому, что Windows обращается к функциям так, как будто они расположены не в сегменте кода программы, а в другом сегменте. Процедурно-ориентированный интерфейс прикладной программы (application program interface, API) через системный стек передает параметры в различные модули, которые составляют Windows. доступ к функциям Windows должен осуществляться по 32-разрядным адресам. Этот адрес можно разделить на две составляющие: 16-разрядный адрес сегмента и 16-разрядное смещение.(параметры передаются в стек справа налево (то есть начиная с последнего параметра и заканчивая первым)

Передача параметров в стиле языка Pascal

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

Заголовочный файл WINDOWS.H включает (для 16-разрядной Windows) или ссылается (для 32-разрядной Windows) на более чем тысячу определений констант, объявлений typedef и сотни прототипов функций. приложения Windows требуют больше времени на компиляцию – т.к. этот файл имеет большой размер

Обычно директивы #define, находящиеся в WINDOWS.H, назначают численной константе текстовый идентификатор, например

#define WM_CREATE 0х0001 - компилятор Visual C/C++ будет заменять WM_CREATE на шестнадцатеричную константу 0х0001

Существует несколько этапов, общих при разработке любых приложений Windows:

· Создать функцию WinMain() и вспомогательные для нее в программе на С, либо применить MFC, например, CWinAPP, в программе на C++.

· Создать описание меню, окон диалога и других ресурсов и поместить их в файл описания ресурсов.

· (При необходимости) При помощи редактора ресурсов из пакета Visual C++ создать собственные курсоры, значки и растровые изображения.

· (При необходимости) При помощи редактора ресурсов из пакета Visual C++ создать окна диалогов.

· Создать описание модуля (только для 16-разрядных приложений и поместить его в файл определения модуля (module definition file).

· Откомпилировать и скомпоновать тексты на C/C++.

· Откомпилировать файл описания ресурсов и включить его в исполняемый файл.

 

55. Инструментальные средства Visual C++. Необходимость файла проекта. Создание ресурсов. Использование редакторов ресурсов. Создание значков, курсоров и растровых изображений. Создание значка и курсора. Как проектировать меню. Работа меню.

 

редакторов ресурсов - можно обратиться посредством команды Resource|New. позволяют быстро создавать значки, курсоры и растровые изображения. Файлы ресурсов позволяют также дополнить программу элементами для взаимодействия с пользователем, такими, как меню, клавиши доступа и окна диалога. Ресурс (resource) представляет собой данные, включенные в исполняемый файл приложения. В то же время, они не попадают в обычный сегмент данных программы. В Windows З.х несколько копий одного приложения совместно используют его программный код и ресурсы.

Необходимость файла проекта

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

Создание ресурсов – используя редакторы ресурсов создать значки, курсоры и растровыми изображениями, Эти редакторы в сочетании с компилятором C/C++ составляют полноценную среду для разработки графических ресурсов.

Все редакторы включены в среду Visual C++ и являются неотъемлемой частью компилятора

Запустить любой редактор ресурсов можно командой Resource|New.

Значки и курсоры по существу представляют собой маленькие растровые изображения, не будут зависеть от разрешающей способности устройства, на котором они будут отображаться. Редактор значков Icon Editor и редактор курсоров Cursor Editor.

Создать значок или курсор очень легко. Сначала выберите New из меню Resource. Затем выберите нужный тип ресурса из предложенного списка (Bitmap — растровое изображение, Icon — значок, Cursor — курсор).

Меню — одно из важнейших средств Windows для создания интерактивных программ. Меню обеспечивают простой метод взаимодействия с программой, аналогичный для всех приложений. Меню создаются и реализуются в программе.

56. Инструментальные средства Visual C++. Проектирование меню. Меню и компилятор ресурсов. Ключевые слова и параметры меню. Быстрые клавиши. Как вводить данные при помощи окон диалога. Принципы построения окон диалога.

Меню Resource позволяет вызывать редактор для создания или изменения ресурсов меню. Альтернативная (и часто предпочтительная) методика состоит в использовании при создании меню текстового редактора. Он может создавать и модифицировать описание меню в файле описания ресурсов (.RC). Этот файл содержит обыкновенный (не откомпилированный) текст В этом же файле могут быть указаны различные стили и атрибуты меню.

Информацию о ресурсе меню можно компилировать при помощи компилятора ресурсов. Результат компиляции (файл.RES) будет встроен в программу на этапе компоновки, в результате чего получится исполняемый файл (.ЕХЕ).

файл описания ресурса:

PIEMENU MENU LOADONCALL MOVEABLE PURE DISCARDABLE

BEGIN

POPUP "Pie_Chart_Data"

BEGIN

Menultem "About Box...", IDM_ABOUT

Menultem "Data Entry...", IDM_INPUT

Menultem "Exit", IDM_EXIT

END

END

Вместо слов BEGIN и END можно использовать фигурные скобки ({})Многоточие, следующее за названием пункта, указывает, что соответствующая команда вызывает появление окна диалога

Данному описанию меню присвоено имя PIEMENU. За именем следует ключевое слово MENU. В этом примере определяется подменю Pie Chart Data, название которого появится в строке главного меню. В названии пункта меню можно использовать символ амперсанд (&) для того, чтобы следующая за ним буква стала подчеркнутой. Каждая строка, начинающаяся ключевым словом MENUITEM, определяет один пункт меню, например "Data Entry". Справа от названия пункта находится его идентификатор или константа. Числовые значения можно заменить идентификаторами, определенными в заголовочном файле, — например, IDM_ABOUT 40, IDM_INPUT 50 и IDM_EXIT 70. IDM означает, что это идентификатор пункта меню. следить за тем, чтобы каждый пункт меню имел уникальный идентификатор.

Быстрые клавиши чаще всего используются создателями меню в качестве "клавиш быстрого доступа" для обращения к командам меню.

предпочтительным способом ввода является использование окна диалога. Окна диалога позволяют пользователям отмечать элементы в списке, устанавливать флажки опций, вводить строки и числа непосредственно с клавиатуры. Начиная с Windows 3.0, в окно диалога также может входить поле со списком. Команды About Box... и Data Entry... в примере вызывают появление окна диалога. Как правило, описание окна диалога генерируется редактором диалогов Dialog Editor. Этот редактор рассчитан на считывание и редактирование ресурсов в текстовом формате (.RC) или уже откомпилированных (.RES).

Окно диалога может быть одного из двух основных типов — модального (все остальные элементы данной программы становятся недоступными для пользователя до тех пор, пока он не закроет окно диалога, нажав кнопку ОК или Cancel (Отмена).)

и немодального (пользователь имеет возможность переключаться между окнами)

57. Инструментальные средства Visual C++. Редактирование окон диалога. Использование редактора. Средства редактирования. Создание управляющих элементов при помощи панели инструментов.

Есть два способа ввести информацию о диалоге в файл ресурса (.RES).

1. воспользоваться текстовым редактором C/C++ и сохранить текст в файле описания ресурсов с расширением.RC. После компиляции вы получите файл ресурсов с расширением.RES.

2. создаете окно диалога с нуля, вам следует использовать меню Resource, выбрав в качестве редактора Dialog

меню File, чтобы открыть новое окно диалога. Остальные пункты — это Edit, Resource, Layout (расположение), Window и Help. Названия большинства из них говорят сами за себя; отметим лишь самые важные моменты.

· Меню Edit, помимо всего прочего, позволяет быстро вернуться на шаг назад, если в процессе создания окна диалога допущена ошибка. Вы можете также вырезать, копировать, вставлять и удалять элементы, как вы делаете это в большинстве приложений Windows.

· Меню Resource позволит вам увидеть список параметров конкретного управляющего элемента.

· Меню Layout позволит выровнять, разнести и центрировать управляющие элементы, упорядочить кнопки, изменить размеры и так далее.

· Меню Help сообщит дополнительные подробности обо всех перечисленных средствах.

 

Инструменты

· Инструмент "флажок" - бычно выставляют (или отмечают) нажатием мыши, дают возможность выбрать один или несколько параметров одновременно.

· Инструмент "переключатель" создает небольшой кружок - лишь один переключатель в группе может быть включен в данный момент.

· Инструмент "кнопка"

· Инструмент "рамка группы" - окружает группу элементов, используемых совместно

· Инструменты "горизонтальная полоса прокрутки" и "вертикальная полоса прокрутки"

· Инструмент " список"

· Инструмент "редактор текста"

· Инструмент "статический текст" - создать заголовок для редактора

· Инструмент "значок" используется для размещения значка в окне диалога

 

58. Инструментальные средства Visual C++. Создание окна диалога. Изучение описания ресурса. Элементы языка описания ресурсов. Компиляция ресурсов.

 

Создание окна диалога

Здесь мы создадим несложное окно диалога "О программе". Такие окна используют для указания названия проекта, перечисления разработчиков, указания даты регистрации авторских прав и тому подобного. Как правило, такое окно содержит единственную кнопку — ОК. Создать его проще всего. На рисунке показана заготовка окна диалога с нужным положением и размерами, куда осталось только поместить текст и кнопку.

 

В этом примере окна диалога мы используем только два типа управляющих элементов: статический текст и кнопку. Чтобы ввести текст, выберите желаемое выравнивание (влево, вправо или по центру) и щелкните мышью соответствующий инструмент в панели. Теперь при помощи мыши вы можете выбрать положение текста в окне диалога. Щелчок мышью внутри окна диалога поместит в это место управляющий элемент. Щелкнув мышью внутри этого элемента, вы сможете отредактировать строку, которая будет в нем отображаться.

Чтобы удалить существующий управляющий элемент (например, кнопку "Cancel"), щелкните на нем и нажмите кнопку <DEL>. Щелкнув мышью на кнопке, вы сможете задать текст для этой кнопки. В данном случае текст должен быть "ОК.".

Вы можете сохранить информацию об окне диалога, выбрав команду Save из меню File. Помните, что редактор диалогов сохраняет файл в виде текста (.RC) или откомпилированного ресурса (.RES). Эффективное использование редактора диалогов — это навык, который приходит с практикой.

можно посмотреть на описание ресурса, если оно сохранено в виде текстового файла с расширением.RC.

"О Программе"

 

ABOUTDLGBOX DIALOG DISCARDABLE 50, 300, 180, 80

STYLE DS_MODALFRAME | WS_POPUP

FONT 8, "System"

BEGIN

CTEXT "Microsoft С Pie Chart Program",-1,2,60,176,10,

NOT WS_GROUP

CTEXT "by N.Beloded",-1,2,45,176,10,

NOT WS_GROUP

PUSHBUTTON "OK",IDOK,74,10,32,14

END

 

присвоено имя ABOUTDLGBOX, Наряду с указанием размеров, редактор приписал ему некоторые параметры сегмента. Далее константы, задающие стиль, указывают, что окно диалога имеет рамку модального окна диалога и является раскрывающимся, Первый и второй элементы являются статическим текстом. Параметры указывают тип и расположение текста. Третий элемент — кнопка ОК. Текст в кавычках указывает, какая надпись должна появиться на кнопке.


Дата добавления: 2015-12-08; просмотров: 120 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.053 сек.)