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


Элементы управления ActiveX MFC: Доступ к свойствам окружения

В данной статье рассматриваются как элемент управления ActiveX может получать доступ внешние свойства своего контейнера элемента управления.

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

Для доступа к внешнее свойство, вызвать COleControl::GetAmbientProperty.Эта функция принимает идентификатор менеджера для внешнего свойства качестве первого параметра (файл OLECTL.H определяет идентификаторы диспетчера для стандартного набора внешних свойств).

Параметры функции GetAmbientProperty идентификатор менеджера, другой тег, представляющее ожидаемый тип свойства и указатель на область памяти, где значение должно быть возвращено.Тип данных, на которые ссылается этот указатель изменяется в зависимости от другого тега.Функция возвращает Истина если контейнер поддерживает свойство; в противном случае он возвращает Ложь.

Следующий пример кода возвращает значение внешнего свойства с именем «UserMode». Если свойство не поддерживается контейнером, то по умолчанию берется Истина:

BOOL bUserMode;
if(!GetAmbientProperty( DISPID_AMBIENT_USERMODE, VT_BOOL, &bUserMode))
   bUserMode = TRUE;

Для удобства вспомогательный объект COleControl предоставляет функции, обращающийся к многие часто используемых свойства окружения и возвращает соответствующие значения по умолчанию для свойства недоступны.Эти вспомогательные функции следующим образом:

Если значение внешнего свойства изменяет (через какие-либо действия контейнера), то вызывается функция-член OnAmbientPropertyChanged элемента управления.Переопределите этот функцию-член, чтобы обработать такое уведомление.Параметр OnAmbientPropertyChanged идентификатор менеджера соответствующего внешнего свойства.Значение этого идентификатор менеджера может быть DISPID_UNKNOWN, показывающее, что один или несколько внешние свойства изменились, но сведения о том, какие свойства было затрагивается недоступна.

См. также

Основные понятия

Элементы управления ActiveX MFC