Активация (C++)
В этой статье объясняется роль активации в визуальном редактировании элементов OLE. После того как пользователь встраит элемент OLE в документ контейнера, его может потребоваться использовать. Для этого пользователь дважды щелкает элемент, который активирует этот элемент. Наиболее частым действием для активации является редактирование. Многие текущие элементы OLE при активации для редактирования приводят к изменению меню и панелей инструментов в текущем окне фрейма, чтобы отразить те, которые принадлежат серверу приложению, созданному элементом. Это поведение, известное как активация на месте, позволяет пользователю изменять любой внедренный элемент в составном документе без выхода из окна документа контейнера.
Кроме того, можно редактировать внедренные элементы OLE в отдельном окне. Это произойдет, если контейнер или серверное приложение не поддерживает активацию на месте. В этом случае, когда пользователь дважды щелкает внедренный элемент, серверное приложение запускается в отдельном окне, а внедренный элемент отображается как собственный документ. Пользователь изменяет элемент в этом окне. После завершения редактирования пользователь закрывает серверное приложение и возвращается в приложение контейнера.
В качестве альтернативы пользователь может выбрать команду "Открыть редактирование" с <помощью команды "Открыть объект>" в меню "Изменить". Откроется объект в отдельном окне.
Примечание.
Редактирование внедренных элементов в отдельном окне было стандартным поведением в ole версии 1, а некоторые приложения OLE могут поддерживать только этот стиль редактирования.
Активация на месте способствует созданию документов, ориентированного на документ. Пользователь может рассматривать составной документ как одну сущность, работая над ней без переключения между приложениями. Однако активация на месте используется только для внедренных элементов, а не для связанных элементов: их необходимо изменить в отдельном окне. Это связано с тем, что связанный элемент фактически хранится в другом месте. Редактирование связанного элемента происходит в фактическом контексте данных, то есть там, где хранятся данные. Изменение связанного элемента в отдельном окне напоминает пользователю, что данные принадлежат другому документу.
MFC не поддерживает вложенную активацию на месте. Если вы создаете приложение контейнера или сервера, и этот контейнер или сервер внедрен в другой контейнер и активируется на месте, он не может активировать объекты, внедренные в него.
Что происходит с внедренным элементом, когда пользователь дважды щелкает его, зависит от команд, определенных для элемента. Дополнительные сведения см. в разделе "Активация: команды".