Поделиться через


Активация (C++)

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

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

В качестве альтернативы пользователь может выбрать «открытая правка» с помощью команды <"Открыть объект>" в меню "Изменить". Это открывает объект в отдельном окне.

Замечание

Редактирование внедренных элементов в отдельном окне было стандартным поведением в ole версии 1, а некоторые приложения OLE могут поддерживать только этот стиль редактирования.

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

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

Что происходит с внедренным элементом, когда пользователь дважды щелкает его, зависит от команд, определенных для элемента. Для получения информации см. в разделе "Активация: глаголы".

См. также

OLE
Контейнеры
Серверы