- Установить переключатель Вставить (Paste), а для связывания объектов имеется переключатель Связать (Paste Link).
- Выбрать из списка источник и нажать ОК.
Существует еще способ внедрения части документа в другой документ – это технология “перетащить и отпустить”.
10.2. Создание приложения-контейнера
Цель работы - создание приложения в виде контейнера ActiveX. В качестве задачи возьмем приложение lab3_2 из п. 8.2, посвященное созданию диалогового окна с кнопкой и текстовым полем. Внесем некоторые изменения.
Алгоритм работы приложения Contain - следующий:
- Щелкнуть на включенной заранее в меню новой команде Dialog. Появляется диалоговое окно со стандартными кнопками OK и Cancel, с добавленной кнопкой с именем Output и добавленным пустым текстовым полем.
- Щелкнуть на кнопке Output. В текстовом поле появляется строка “Диалоговое окно”.
- Щелкнуть на кнопке OK. Диалоговое окно исчезает, появляется главное окно приложения, в котором выводится содержимое текстового поля “Диалоговое окно”.
Для создания приложения–контейнера ActiveX необходимо выполнить следующие действия:
1. Создать новый проект Contain, изменив некоторые установки этапов настройки AppWizard в п. 8.2 (lab3_2): задать имя проекта Contain, на 1-ом этапе выбрать MDI-приложение, на 3-ем этапе выбрать Container, остальные – без изменений по умолчанию.
2. Сравнить меню нового приложения Contain с приложением lab3_2:
- Перейти на вкладку Contain resources и открыть папку Menu. Появилось новое меню IDR_CONTAINTYPE_CNTR_IP (CNTR – это согласные от слова container, IP – (in place) редактирование на месте). Это означает, что объект, содержащийся в контейнере, может быть отредактирован на месте. Для редактирования объединяются меню контейнера и сервера.
- Щелкнуть дважды на этом меню. Появляется окно с командами нового меню. Это окно будет выводиться во время редактирования объекта на месте, т.е. в окне контейнера.
- Щелкнуть дважды на меню IDR_CONTAINTYPE. Выводится окно с командами меню. Открыть меню Edit. Появились новые 4 команды: Paste Special – пересылка объекта в контейнер из буфера обмена Clipboard; Insert New Object – помещение объекта в контейнер с помощью диалогового окна Insert Object; Links – определение метода обновления связанного объекта с помощью диалогового окна Links; <<OLE VERBS GO HERE>> - вывод в меню Edit всплывающего меню с командами, специфичными для выбранного типа объекта.
3 Выполнить с приложением Contain операции, аналогичные операциям приложения lab3_2 из п. 8.2:
- Включение новой команды Dialog в меню. Отличие от lab3_2 – надо включить команду не в меню File , а в меню заготовки приложения IDR_CONTAINTYPE (открыть это меню в окне Contain resources) между пунктами View и Windows.
Вызов редактора меню. Перейти на вкладку ResourseView и открыть папку Contain resourses. Открыть папку Menu. Появится строки трех меню. Дважды щелкнуть на строке IDR_CONTAINTYPE. Выводятся команды главного меню.
Добавление новой команды Dialog. Новая команда должна быть между View и Windows. Щелкнуть на Windows и нажать клавишу Ins. Появится пустая команда. Дважды щелкнуть на новой пустой команде. Откроется диалоговое окно Menu Item Properties. Занести в поле Caption строку Dialog и закрыть окно, а затем и редактор меню.
Подключение кнопки меню к приложению. Запустить Class-Wizard (View->ClassWizard). Проверить вкладку Message Maps и в списке Class Name имя CContainView. Выделить идентификатор команды ID_Dialog. В списке Message дважды щелкнуть на строке Сommand. В списке Member function появится функция - обработчик OnDialog(). Дважды щелкнуть на строке OnDialog. В окне появится код функции.
- Создание диалогового окна.
- Добавление элементов управления в диалоговое окно.
- Изменение надписей элементов управления.
- Создание класса диалогового окна.
- Связывание элементов диалогового окна с функциями класса.
- Связывание переменных с элементами диалогового окна.
- Переопределение функций для кнопки OK.
- Отображение диалогового окна.
4 Скомпилировать приложение и запустить его на выполнение. Проверить алгоритм работы приложения-контейнера ActiveX: работу диалогового окна с кнопкой и текстовым полем с выводом строки.
5 Вставить в контейнер диаграмму Excel. Для этого выполнить следующие действия:
- Запустить приложение Cont.
- Выбрать команду Edit->Insert New Object. Появится диалоговое окно для внедрения или связывания объектов.
- Выбрать новый объект Диаграмма Microsoft Excel и нажать OK. Диаграмма будет вставлена в контейнер.
- Для отмены редактирования на месте нажать Esc. Диаграмма уменьшится и сдвинется влево. Все объекты помещаются в прямоугольник 200x200 пикселей.
10.3. Создание приложения-сервера
Цель работы - создание приложения в виде сервера ActiveX. В качестве задачи возьмем приложение Contain из п. 10.2, посвященное созданию диалогового окна с кнопкой и текстовым полем. Внесем некоторые изменения.
Для создания приложения–сервера ActiveX необходимо выпол-нить следующие действия:
1 Создать новый проект Serv1 , изменив некоторые установки этапов настройки AppWizard : задать имя проекта Serv1, на 1-ом этапе выбрать MDI-приложение, на 3-ем этапе выбрать Full-server, остальные – без изменений по умолчанию.
2 Сравнить меню нового приложения Serv1 с приложением lab3_2:
- Перейти на вкладку Serv1 resources и открыть папку Menu. Появились 2 новых меню. Первое меню IDR_SERV1TYPE_SRVR_IP (SRVR – это согласные от слова server, IP – (in place) редактирование на месте). Это означает, что объект, содержащийся в контейнере, может быть отредактирован на месте. Для редактирования объединяются меню контейнера (например, из п.10.2 IDR_CONTAINTYPE _CNTR_IP) и первое меню сервера. Второе меню IDR_SERV1TYPE_ SRVR_EMB (EMB – (embedded) встроенный) используется для редактирования в отдельном окне сервера.
- Щелкнуть дважды на втором меню. Появляется окно с командами нового меню. Это окно будет выводиться во время редактирования объекта в отдельном окне, т.е. в окне сервера. Открыть меню File. Появились новые 2 команды : Update вместо Save – модификация объекта; Save Copy As вместо Save As – копирование изменений объекта в файл, а не сохранение всего документа. Объект считается не самостоятельным документом, а объектом, внедренным в другой документ.
3 Выполнить с приложением Serv1 операции, аналогичные операциям приложения lab3_2 из п. 8.2:
- Включение новой команды Dialog.
- Создание диалогового окна.
- Добавление элементов управления в диалоговое окно.
- Изменение надписей элементов управления.
- Создание класса диалогового окна.
- Связывание элементов диалогового окна с функциями класса.
- Связывание переменных с элементами диалогового окна.
- Переопределение функций для кнопки OK.
- Отображение диалогового окна. В приложении имеются две функции OnDraw(): функция CServ1View::OnDraw() выводит объект на экран при редактировании на месте и при автономном приложении Serv1; функция CServ1SrvrItem::OnDraw() выводит на экран неактивный объект.
4 Скомпилировать приложение и запустить его на выполнение. Проверить алгоритм работы приложения-сервера ActiveX: работу диалогового окна с кнопкой и текстовым полем с выводом строки.
5 Вставить в контейнер Contain (п. 10.2) сервер (п. 10.3). Для этого выполнить следующие действия:
- Запустить приложение Contain.
- Выбрать команду Edit->Insert New Object. Появится диалоговое окно для внедрения или связывания объектов.
- Выбрать новый объект Serv1 и нажать OK. Сервер будет вставлен в контейнер. Проверить работу диалогового окна Dialog.
- Для отмены редактирования на месте нажать Esc. Объект уменьшится и сдвинется влево. Все объекты помещаются в прямоугольник 200x200 пикселей.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.