Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Прога лабы 5 семестр

.pdf
Скачиваний:
20
Добавлен:
11.02.2015
Размер:
728.33 Кб
Скачать

Кафедра «Компьютерные системы управления»

ОПИСАНИЕ ЛАБОРАТОРНЫХ РАБОТ ПО КУРСУ

«Программное обеспечения систем управления»

Москва 2001

 

2

СОДЕРЖАНИЕ

 

СОГЛАШЕНИЕ ОБ АББРЕВИАТУРАХ.....................................................................................................................

3

СОГЛАШЕНИЯ О НОТАЦИИ......................................................................................................................................

3

ЛАБОРАТОРНАЯ РАБОТА №1........................................................................................................................................

4

ИСПОЛЬЗОВАНИЕ ОБЪЕКТОВ ACTIVEX В WINDOWS ПРИЛОЖЕНИЯХ...................................................

4

Понятие ActiveX. ............................................................................................................................................................

4

Исследование свойств объекта ActiveX .......................................................................................................................

5

Исследование методов объекта ActiveX ......................................................................................................................

6

Регистрация объектов ActiveX .....................................................................................................................................

8

Разработка приложения с объектом ActiveX .............................................................................................................

8

ЛАБОРАТОРНАЯ РАБОТА №2......................................................................................................................................

14

СОЗДАНИЕ ЭЛЕМЕНТОВ ACTIVE X В СРЕДЕ VISUAL C++ С ПОМОЩЬЮ MFC.....................................

14

Создание структуры....................................................................................................................................................

14

Добавление свойств, методов, событий элемента управления...............................................................................

15

Разработка программного кода для методов, событий..........................................................................................

17

Добавление программного кода, отвечающего за прорисовку элемента Active X .................................................

18

Создание окна свойств элемента управления............................................................................................................

19

ЛАБОРАТОРНАЯ РАБОТА №3......................................................................................................................................

24

РАЗРАБОТКА ЭЛЕМЕНТА УПРАВЛЕНИЯ ACTIVEX С ИСПОЛЬЗОВАНИЕМ БИБЛИОТЕКИ ШАБЛОНОВ (ATL)..............

24

Создание проекта.........................................................................................................................................................

24

Добавление элемента управления................................................................................................................................

27

Добавление свойства элементу управления...............................................................................................................

29

Изменение кода отвечающего за отрисовку элемента............................................................................................

31

Добавление страницы свойств....................................................................................................................................

33

ЛАБОРАТОРНАЯ РАБОТА №4......................................................................................................................................

40

СОЗДАНИЕ COM-СЕРВЕРА И СОМ-КЛИЕНТА...................................................................................................

40

Создание COM-сервера................................................................................................................................................

40

Создание COM-клиента...............................................................................................................................................

47

3

СОГЛАШЕНИЕ ОБ АББРЕВИАТУРАХ

MS Visual C++, - Microsoft Visual C++; MFC, - Microsoft Foundation Classes; COM, - Component Object Model; C<class name>, - обозначение класса; m_<field name>, - обозначение m-поля;

<pointer name>_p, - обозначение указателя; <type name>_t, - обозначение типа.

СОГЛАШЕНИЯ О НОТАЦИИ

В руководстве приняты следующие соглашения о нотации:

Обозначение

Описание

(тип шрифта)

 

 

 

Моноширинный

Выделяет исходные тексты программ, примеры, примеры работы в

 

командной строке, ввод пользователя, вывод программы.

Жирный

Выделяет функции, структуры, макроопределения, интерфейсы,

 

методы, типы данных или другие ключевые слова в программном

 

интерфейсе и в языке программирования.

 

 

Курсив

Выделяет подстановки пользователя, параметры функций и методов.

 

Эти подстановки представляют собой место, на которое должна быть

 

подставлена синтаксическая конструкция пользователя.

 

Дополнительно курсивом выделены вводимые понятия и термины,

 

которые имеют особое значение.

 

 

ЗАГЛАВНЫЕ

Верхним регистром выделяются флаги, возвращаемые значения

 

функций. Дополнительно заглавным регистром выделяются имена

 

файлов, регистров и команды системы.

 

 

[]

Квадратные скобки, ограничивающие синтаксическую конструкцию,

 

означают ее необязательность.

 

 

4

ЛАБОРАТОРНАЯ РАБОТА №1

ИСПОЛЬЗОВАНИЕ ОБЪЕКТОВ ACTIVEX В WINDOWS ПРИЛОЖЕНИЯХ

Цель работы: Ознакомление с использованием ActiveX, и построение простейшего приложения, включающего объекты ActiveX в среде разработки Visual C++.

Ход работы:

1.Понятие об ActiveX

2.Исследование свойств объекта ActiveX

3.Исследование методов объекта ActiveX

4.Регистрация объектов ActiveX

5.Разработка приложения с объектом ActiveX.

Понятие ActiveX.

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

Технология ActiveX появилась с целью существенно увеличить функциональные возможности компьютера, за счет интеграции в Internet и локальные сети, а также позволить программистам повторно использовать ранее написанный код. ActiveX – это набор технологий, позволяющий программным компонентам взаимодействовать друг с другом в сетевой среде (такой как Internet) независимо от языка на котором они реализованы. ActiveX является расширенной технологией OLE (Object Linking and Embedding). Эти стандарты базируются на основе модели COM (Component Object Model) и позволяют реализовывать компонентную архитектуру программного обеспечения. Основным достоинством их является большая скорость выполнения, за счет прямого доступа к ресурсам операционной системы, и возможность повторного использования кода. Повторность использования кода позволило разработчику использовать в различных приложениях один раз написанный код, использовать код написанный другими программистами, что в несколько раз увеличило скорость разработки программного обеспечения. Технология ActiveX работает только в среде Windows.

Коды и ресурсы ActiveX хранятся в отдельном файле с расширением .ocx. Элемент

ActiveX можно включить в программы на Visual C++, Visual Basic, Visual J++, поместить на

Web-странице в сети Internet или локальной сети, использовать в приложениях баз данных или в любой программе, которая поддерживает технологию ActiveX.

5

Элементы ActiveX можно включать в любое приложение, независимо от языка программирования. Приложение, в котором встраивается элемент управления ActiveX, называется контейнером. ActiveX предоставляет три основных способа взаимодействия с приложением: свойства, методы и события. Свойства – это атрибуты элемента, например для квадрата свойством может являться его цвет, координата верхнего левого угла, длина стороны. Метод – это функция элемента ActiveX, которую может вызвать приложение, например, метод может вызвать диалоговое окно About с информацией об элементе. Событие – это то, что происходит внутри элемента, например щелчок мыши на элементе, передающий сообщение контейнеру. События могут предоставлять интерфейсы, через которые можно передавать сигналы – события всем заинтересованным в них программам. Взаимодействие приложения и элемента управления ActiveX представлено на рисунке 1.

Событи

Приложение

ActiveX

контейнер

 

 

Метод

Свойст

Рис.1. Взаимодействие контейнер и ActiveX.

При свершении какого-либо события контейнер обращается к элементу Active X, а при вызове метода или при изменении свойств – ActiveX передает в контейнер данные.

Для изучения свойств, методов и событий элементов ActiveX - Visual Studio предоставляет стандартный инструмент – ActiveX Control Test Container. Его можно вызвать из основного меню Windows: Microsoft Visual Studio 6.0 Microsoft Visual Studio 6.0 Tools, - или если открыт Visual C++ вызвать команду ActiveX Control Test Container меню Tools.

Исследование свойств объекта ActiveX

Test Container предоставляет оболочку для тестирования ActiveX компонентов. Сначала необходимо вставить в Test Container элемент Calendar, для этого надо вызвать команду Insert New Control из меню Edit (или нажать кнопку New Control панели инструментов), а в появившемся диалоговом окне (см. рис.2) выбрать Calendar Control 8.0, нажать кнопку OK.

После вставки ActiveX в рабочее пространство Test Container необходимо вызвать команду Properties меню Edit (или нажать кнопку Properties панели инструментов). В

6

диалоговом окне Properties (см. рис. 3) необходимо изучить свойства объекта, определить, на что они влияют и результаты описать в отчете.

Рис. 2. Диалоговое окно Insert Control

Рис. 3. Диалоговое окно Properties для элемента Calendar

Исследование методов объекта ActiveX

При исследовании методов ActiveX необходимо вызвать команду Invoke Methods меню Control (нажать кнопку Invoke Methods панели инструментов). В диалоговом окне Invoke Methods (см. рис. 3) в списке Method Name выбрать интересующий метод, в поле Parameter Value указать значение параметра, а в поле Parameter Type указать тип параметра, после чего нажать кнопку Set Value для установки новых значений параметра и кнопку Invoke для вызова метода с новыми значениями параметров.

7

Для программного обращения к свойствам используются методы PropPut и PropGet, первые – устанавливают новые значения свойств, вторые – считывают текущие значения. Поэтому чтобы правильно передать значение и тип параметра рекомендуется сначала вызвать метод PropGet (в поле Return Value указано текущее значения параметра для данного метода и в скобках тип этого значения), определив диапазон изменения параметра и его тип вызвать метод

PropPut.

Рис. 3. Диалоговое окно Invoke Methods для объекта Calendar

8

Регистрация объектов ActiveX

Для того чтобы операционная система знала, как использовать тот или иной ActiveX на локальной машине его обязательно необходимо зарегистрировать. В учебных целях мы сначала разрегистрируем ActiveX Calendar, чтобы потом научиться регистрировать элементы ActiveX.

Итак, вызовите команду Register Controls из меню File, в появившемся диалоговом окне найдите MSCAL.Calendar 7.0 (ВНИМАНИЕ! Запомните папку в которой хранится этот элемент управления.), выделите его и нажмите кнопку Unregister (Разрегистрировать). После этой операции вы не найдете объект Calendar в списке диалогового окна New Control (см.

рис.5).

Рис. 5 Диалоговое окно Register Control

Чтобы зарегистрировать ActiveX вызовите команду Register Control меню Edit, в появившемся диалоговом окне нажмите кнопку Register, укажите файл, где хранится ActiveX при этом вся необходимая информация запишется в реестр Windows. После данной процедуры элемент управления Calendar будет зарегистрирован, и его можно будет использовать в других приложениях.

Разработка приложения с объектом ActiveX

Для создания простейшего приложения, включающего объект ActiveX, необходимо выполнить следующие действия в среде разработки приложений Microsoft Visual C++.

1.Вызвать команду New из меню File.

2.В диалоговом окне New перейти на вкладку Project, в списке указать тип проекта –

MFC AppWizard (exe), в поле Project Name указать имя проекта (например

9

application), в поле Location указать путь к папке файла проекта (D:\Education),

убедиться что установлен флаг Create new workspace, в поле Platforms выбрана Win32 (см. рис. 6), нажать кнопку OK.

3.В следующем окне MFC AppWizard (см. рис. 7) указать тип проекта Dialog based (диалоговое приложение), нажать кнопку Finish, а затем кнопку ОК.

Рис. 6. Диалоговое окно New

Рис. 7. Диалоговое окно MFC AppWizard

10

После создания каркаса простейшего приложения в него надо добавить элемент управления Calendar. Для этого в меню Project выберите пункт Add to Project и команду

Components and Controls. В появившемся диалоговом окне выберите папку Registered ActiveX Controls и найдите в ней необходимый элемент ActiveX (Calendar Сontrol 8.0) (см. рис.8).

Рис. 8. Диалоговое окно вставки элемента Active X

Нажмите кнопку Insert, остальные диалоговые окна оставьте с установками по умолчанию. После этого откройте панель инструментов Controls (для чего щелкните правой мышью на панели инструментов и выберите Controls). Найдите на этой панели объект Calendar и перетащите в ваше диалоговое окно, растяните объект до нормальных размеров (при необходимости).

Потом необходимо добавить переменную, которая отвечает за элемент управления Calendar. Для этого надо вызвать команду Class Wizard из меню View, перейти на вкладку

Member Variables (см. рис. 10), нажать кнопку Add Variable, убедившись, что в поле Class Name

выбран класс CApplicationDlg . В новом диалоговом окне (см. рис. 9) в поле Member Variable Name указать имя переменной (например, m_calendar), нажать кнопку OK, и кнопку ОК в окне

Class Wizard.