#define DISPID_AMBIENT_RIGHTTOLEFT (-732)
#define DISPID_AMBIENT_TOPTOBOTTOM (-733)
Второй параметр функции GetAmbientProperty определяет ожидаемый тип свойства, а третий – адрес, по которому будет записано значение. При успешном выполнении и поддержке свойства контейнером функция возвращает TRUE, в противном случае –FALSE.
Ниже приводится фрагмент кода для получения свойства контейнера UserMode:
BOOL bUserMode;
if( !GetAmbientProperty( DISPID_AMBIENT_USERMODE,
VT_BOOL, &bUserMode ) )
bUserMode = TRUE;
Класс COleControl содержит методы для доступа к часто используемым свойствам контейнера (таблица 5):
Таблица 5. Некоторые функции для получения свойств контейнера.
Функция |
Назначение |
OLE_COLOR AmbientBackColor() |
Возвращает значение фонового цвета окружения. |
CString AmbientDisplayName() |
Возвращает имя элемента в контейнере. |
OLE_COLOR AmbientForeColor() |
Возвращает значение цвета переднего плана окружения. |
LPFONTDISP AmbientFont() |
Возвращает значение шрифта окружения. |
short AmbientTextAlign() |
Возвращает тип тектового выравнивания в контейнере: 0 – обычное выравнивание; 1 – по левому краю; 2 – по центру; 3 – по правому краю. |
BOOL AmbientUIDead() |
Возвращает, должен ли элемент реагировать на действия пользователя: не 0 , если элемент должен реагировать на действия пользователя |
BOOL AmbientUserMode() |
Возвращает режим контейнера: 0-режим конструирования, не 0 – рабочий режим. |
BOOL GetAmbientProperty( DISPID dwDispid, VARTYPE vtProp, void* pvProp ); |
Возвращает значение указанного как параметр свойства окружения. |
Если свойство контейнера изменяется, то вызывается функция COleControl::OnAmbientPropertyChanged. Переопределяя эту функцию, Вы можете определить свои действия. Параметр этой функции определяет свойство, которое изменилось.