Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Янг Майкл Дж. -> "Visual С++ 6. Полное руководство: В 2 т.(том2)" -> 139

Visual С++ 6. Полное руководство: В 2 т.(том2) - Янг Майкл Дж.

Янг Майкл Дж. Visual С++ 6. Полное руководство: В 2 т.(том2) — Бином, 2006. — 530 c.
Скачать (прямая ссылка): vicualcc2006t2.djvu
Предыдущая << 1 .. 133 134 135 136 137 138 < 139 > 140 141 142 143 144 145 .. 173 >> Следующая

Внедренный объект редактируется двумя способами. Первый: на месте (in place). При таком способе объект отображается в окне контейнера. Однако программа-сервер временно объединяет команды меню и кнопки панели инструментов с аналогичными средствами программы-контейнера и делает доступными комбинации клавиш, тем самым дополняя средства редактирования своими возможностями. Чтобы инициировать редактирование на месте, выполните двойной щелчок кнопкой мыши внутри объекта или выделите объект и выберите команду Edit в подменю Object меню Edit контейнера. Подменю Object озаглавливается в соответствии с типом внедренного объекта. Например, если объект — растровый рисунок, сгенерированный программой Windows Paint, то подменю будет озаглавлено "Bitmap Image Object".
Второй способ: можно редактировать внедренный объект в окне программы-сервера. Такой режим редактирования называют полностью открытым (fully opened), так как сервер полностью открывает свое собственное окно, не используя окно контейнера. Чтобы начать редактирование таким способом, выделите объект и выберите команду Open в подменю Object меню Edit контейнера. (Далее в этой главе будут описаны сервер и контейнер с обоими методами редактирования объекта, и после генерации программы вы сможете поэкспериментировать с внедрением объектов.)
При связывании объекта данные сохраняются в программе-сервере, а не в программе-контейнере. Сервер сохраняет их в одном из своих документов. При этом данные могут составлять часть или весь документ сервера. Контейнер связан с данными исходного документа и рассматривает их как компоненты своего документа, но реально данные объекта не хранит. Чтобы внедрить связанный объект, необходимо скопировать требуемые данные из документа в сервер, а затем, выполнить команду Paste Link меню Edit контейнера. В некоторых программах объект можно внедрить, выполняя команду Paste Special... меню Edit, а затем выбирая опцию Paste Link. Далее связанный объект отображается в документе контейнера. Для редактирования объекта выполните двойной щелчок кнопкой мыши внутри объекта в окне контейнера. Можно редактировать объект, выделяя его, а затем выбирая команду Open или Edit в подменю Object меню контейнера Edit. Еще один способ — это непосредственный запуск программы-сервера и открытие исходного документа. Независимо от используемого метода редактирование всегда выполняется в окне сервера, т.е. в полностью открытом режиме.
Связывание объекта сложнее внедрения, потому что для редактирования необходимо открыть два документа (документ контейнера содержит связь объекта, документ сервера — данные объекта) и объект нельзя отредактировать на месте. Связывание позволяет создавать и поддерживать главный документ в программе-сервере и автоматически изменять один или несколько связанных объектов внутри других программ. Например, можно создать электронную таблицу, поддерживать ее соответствующей программой, а затем использовать связывание объекта для добавления таблицы или ее части в документы других программ. При изменении первичной электронной таблицы связанные объекты изменяются автоматически. Наоборот, если вся электронная таблица или ее часть была скопирована и внедрена в другую программу, то внедренный объект автоматически не обновляется, так как он — отдельная копия исходных данных.
Третий механизм, поддерживаемый OLE, называют автоматизацией. При его реализации программа — сервер автоматизации — использует некоторые из своих средств совместно с другой программой - клиентом автоматизации. Например, программа Web-броузера может предложить свои средства передачи данных другим программам. Какая-либо из этих программ может использовать указанные средства для отображения Web-страниц или загрузки файлов по интерфейсу FTP. В частности, клиент может изменять некоторые данные сервера, называемые свойствами, или вызывать некоторые функции сервера, называемые методами.
Данный механизм назван автоматизацией, потому что он дает возможность программе клиента автоматизировать задачу использования методов одной или нескольких других программ, а также работать с программными объектами других программ (а не писать свои собственные) и обеспечивает совместную работу отдельных программ. Более того, программа клиента автоматизации может содержать макроязык, позволяющий управлять другими программами и автоматизировать выполнение мультипрограммных приложений. (Например, можно написать макрос для управления приложениями Word, Excel и другими средствами Microsoft Office.) Библиотека MFC поддерживает клиента автоматизации и сервер автоматизации, а мастера Visual С++ генерируют текст программ автоматизации. Информация по автоматизации приведена в следующих разделах справочной системы: Visual С++ Documentation, Using Visual С++, Visual С++ Programmer's Guide, Adding Program Functionality, Overviews, OLE Automation: Overview.
Создание программы-сервера
В этом параграфе описана простая программа ServDemo с OLE-сервером. Программа ServDemo, созданная на основе третьей версии программы Mini Draw (см. гл. 12), создает рисунки, содержащие прямые линии, и сохраняет их в файле на диске. В отличие от MiniDraw программа ServDemo позволяет программам-контейнерам внедрять в их документы рисунки. В ServDemo реализованы оба метода редактирования внедренных объектов: на месте и в полностью открытом режиме. Программа ServDemo не поддерживает связывания, и объекты внедряются только командой New Object... меню Edit программы-контейнера (не используя команду копирования, вставки и технологию "drag-and-drop").
Предыдущая << 1 .. 133 134 135 136 137 138 < 139 > 140 141 142 143 144 145 .. 173 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100