Класс CComControlBase
Этот класс предоставляет методы для создания элементов управления ATL и управления ими.
Внимание
Этот класс и его члены нельзя использовать в приложениях, выполняемых в среде выполнения Windows.
Синтаксис
class ATL_NO_VTABLE CComControlBase
Участники
Общедоступные определения типов
Имя | Описание |
---|---|
CComControlBase::AppearanceType | Переопределите, если свойство m_nAppearance акций не является типом short . |
Открытые конструкторы
Имя | Описание |
---|---|
CComControlBase::CComControlBase | Конструктор. |
CComControlBase::~CComControlBase | Деструктор |
Открытые методы
Имя | Описание |
---|---|
CComControlBase::ControlQueryInterface | Извлекает указатель на запрошенный интерфейс. |
CComControlBase::D oesVerbActivate | Проверяет, что параметр iVerb, используемый в IOleObjectImpl::DoVerb пользовательском интерфейсе элемента управления (iVerb равно OLEIVERB_UIACTIVATE), определяет действие, выполняемое при двойном щелчке элемента управления (iVerb равно OLEIVERB_PRIMARY), отображает элемент управления (iVerb равно OLEIVERB_SHOW) или активирует элемент управления (iVerb равно OLEIVERB_INPLACEACTIVATE). |
CComControlBase::D oesVerbUIActivate | Проверяет, что параметр iVerb , используемый пользовательским IOleObjectImpl::DoVerb интерфейсом элемента управления, активируется и возвращает значение TRUE. |
CComControlBase::DoVerbProperties | Отображает страницы свойств элемента управления. |
CComControlBase::FireViewChange | Вызовите этот метод, чтобы сообщить контейнеру перераскрыть элемент управления или уведомить зарегистрированные приемники советов о том, что представление элемента управления изменилось. |
CComControlBase::GetAmbientAppearance | Извлекает DISPID_AMBIENT_APPEARANCE, текущий параметр внешнего вида элемента управления: 0 для плоских и 1 для 3D. |
CComControlBase::GetAmbientAutoClip | Получает DISPID_AMBIENT_AUTOCLIP, флаг, указывающий, поддерживает ли контейнер автоматическую обрезку области отображения элемента управления. |
CComControlBase::GetAmbientBackColor | Извлекает DISPID_AMBIENT_BACKCOLOR, цвет фона окружающей среды для всех элементов управления, определенных контейнером. |
CComControlBase::GetAmbientCharSet | Извлекает DISPID_AMBIENT_CHARSET, внешний набор символов для всех элементов управления, определенных контейнером. |
CComControlBase::GetAmbientCodePage | Извлекает DISPID_AMBIENT_CODEPAGE, внешний набор символов для всех элементов управления, определенных контейнером. |
CComControlBase::GetAmbientDisplayAsDefault | Получает DISPID_AMBIENT_DISPLAYASDEFAULT, флаг, который имеет значение TRUE, если контейнер помечает элемент управления на этом сайте, чтобы быть кнопкой по умолчанию, и поэтому элемент управления кнопкой должен нарисовать себя с более толстым кадром. |
CComControlBase::GetAmbientDisplayName | Получает DISPID_AMBIENT_DISPLAYNAME, имя контейнера, предоставленное элементу управления. |
CComControlBase::GetAmbientFont | Извлекает указатель на внешний IFont интерфейс контейнера. |
CComControlBase::GetAmbientFontDisp | Извлекает указатель на внешний IFontDisp интерфейс диспетчера контейнера. |
CComControlBase::GetAmbientForeColor | Извлекает DISPID_AMBIENT_FORECOLOR цвет внешнего плана для всех элементов управления, определенных контейнером. |
CComControlBase::GetAmbientLocaleID | Извлекает DISPID_AMBIENT_LOCALEID идентификатор языка, используемого контейнером. |
CComControlBase::GetAmbientMessageReflect | Получает DISPID_AMBIENT_MESSAGEREFLECT, флаг, указывающий, хочет ли контейнер получать сообщения окна (например, WM_DRAWITEM) как события. |
CComControlBase::GetAmbientPalette | Извлекает DISPID_AMBIENT_PALETTE, используемый для доступа к HPALETTE контейнера. |
CComControlBase::GetAmbientProperty | Извлекает свойство контейнера, указанное идентификатором. |
CComControlBase::GetAmbientRightToLeft | Извлекает DISPID_AMBIENT_RIGHTTOLEFT, направление, в котором содержимое отображается контейнером. |
CComControlBase::GetAmbientScaleUnits | Извлекает DISPID_AMBIENT_SCALEUNITS, внешние единицы контейнера (например, дюймы или сантиметры) для отображения меток. |
CComControlBase::GetAmbientShowGrabHandles | Извлекает DISPID_AMBIENT_SHOWGRABHANDLES, флаг, указывающий, позволяет ли контейнеру отображать дескриптор захвата для себя при активности. |
CComControlBase::GetAmbientShowHatching | Извлекает DISPID_AMBIENT_SHOWHATCHING, флаг, указывающий, позволяет ли контейнеру отображаться сам элемент управления с люком при активном пользовательском интерфейсе. |
CComControlBase::GetAmbientSupportsMnemonics | Получает DISPID_AMBIENT_SUPPORTSMNEMONICS, флаг, указывающий, поддерживает ли контейнер mnemonics клавиатуру. |
CComControlBase::GetAmbientTextAlign | Извлекает DISPID_AMBIENT_TEXTALIGN, предпочтительное выравнивание текста контейнером: 0 для общего выравнивания (чисел вправо, текст слева), 1 для выравнивания по левому краю, 2 для выравнивания центра и 3 для выравнивания вправо. |
CComControlBase::GetAmbientTopToBottom | Извлекает DISPID_AMBIENT_TOPTOBOTTOM, направление, в котором содержимое отображается контейнером. |
CComControlBase::GetAmbientUIDead | Получает DISPID_AMBIENT_UIDEAD, флаг, указывающий, требуется ли элементу управления реагировать на действия пользовательского интерфейса. |
CComControlBase::GetAmbientUserMode | Получает DISPID_AMBIENT_USERMODE, флаг, указывающий, находится ли контейнер в режиме выполнения (TRUE) или в режиме разработки (FALSE). |
CComControlBase::GetDirty | Возвращает значение элемента m_bRequiresSave данных. |
CComControlBase::GetZoomInfo | Извлекает значения x и y числителя и знаменателя коэффициента масштабирования для элемента управления, активированного для редактирования на месте. |
CComControlBase::InPlaceActivate | Вызывает переход элемента управления из неактивного состояния в любое состояние команды в iVerb . |
CComControlBase::InternalGetSite | Вызовите этот метод, чтобы запросить сайт элемента управления для указателя на определенный интерфейс. |
CComControlBase::OnDraw | Переопределите этот метод, чтобы нарисовать элемент управления. |
CComControlBase::OnDrawAdvanced | Значение по умолчанию OnDrawAdvanced подготавливает нормализованный контекст устройства для рисования, а затем вызывает метод класса OnDraw управления. |
CComControlBase::OnKillFocus | Проверяет, что элемент управления активен и имеет допустимый сайт управления, а затем сообщает контейнеру, что элемент управления потерял фокус. |
CComControlBase::OnMouseActivate | Проверяет, находится ли пользовательский интерфейс в пользовательском режиме, а затем активирует элемент управления. |
CComControlBase::OnPaint | Подготавливает контейнер для рисования, получает клиентскую область элемента управления, а затем вызывает метод класса OnDraw элемента управления. |
CComControlBase::OnSetFocus | Проверяет, является ли элемент управления активным и имеет допустимый сайт элемента управления, а затем сообщает контейнеру, что элемент управления получил фокус. |
CComControlBase::P reTranslateAccelerator | Переопределите этот метод, чтобы предоставить собственные обработчики акселератора клавиатуры. |
CComControlBase::SendOnClose | Уведомляет все приемники рекомендаций, зарегистрированные в владельце совета, что контроль был закрыт. |
CComControlBase::SendOnDataChange | Уведомляет все приемники рекомендаций, зарегистрированные в владельце совета, что изменены данные управления. |
CComControlBase::SendOnRename | Уведомляет все приемники рекомендаций, зарегистрированные в владельце совета, что элемент управления имеет новый моникер. |
CComControlBase::SendOnSave | Уведомляет все приемники рекомендаций, зарегистрированные в владельце совета, что элемент управления сохранен. |
CComControlBase::SendOnViewChange | Уведомляет все зарегистрированные приемники рекомендаций о том, что представление элемента управления изменилось. |
CComControlBase::SetControlFocus | Задает или удаляет фокус клавиатуры в элемент управления или из него. |
CComControlBase::SetDirty | Задает элемент m_bRequiresSave данных значению в bDirty. |
Открытые члены данных
Имя | Описание |
---|---|
CComControlBase::m_bAutoSize | Флаг, указывающий, что элемент управления не может быть любым другим размером. |
CComControlBase::m_bDrawFromNatural | Флаг, указывающий, что IDataObjectImpl::GetData и CComControlBase::GetZoomInfo должен задавать размер элемента управления, m_sizeNatural а не из m_sizeExtent . |
CComControlBase::m_bDrawGetDataInHimetric | Флаг, указывающий, что IDataObjectImpl::GetData при рисовании следует использовать единицы HIMETRIC, а не пиксели. |
CComControlBase::m_bInPlaceActive | Флаг, указывающий, что элемент управления активен на месте. |
CComControlBase::m_bInPlaceSiteEx | Флаг, указывающий на контейнер, поддерживает функции управления интерфейсом IOleInPlaceSiteEx и OCX96, такие как элементы управления без окон и без окон. |
CComControlBase::m_bNegotiatedWnd | Флаг, указывающий, согласуется ли элемент управления с контейнером о поддержке функций управления OCX96 (таких как элементы управления без мерцания и без окон), а также указывает, находится ли элемент управления в окне или без окон. |
CComControlBase::m_bRecomposeOnResize | Флаг, указывающий, что элемент управления хочет перекомпозировать презентацию, когда контейнер изменяет размер дисплея элемента управления. |
CComControlBase::m_bRequiresSave | Флаг, указывающий, что элемент управления изменился с момента последнего сохранения. |
CComControlBase::m_bResizeNatural | Флаг, указывающий, что элемент управления хочет изменить размер его естественной степени (его немасштабированный физический размер) при изменении размера дисплея элемента управления. |
CComControlBase::m_bUIActive | Флаг, указывающий пользовательский интерфейс элемента управления, например меню и панели инструментов, активен. |
CComControlBase::m_bUsingWindowRgn | Флаг, указывающий, что элемент управления использует область окна, предоставляемую контейнером. |
CComControlBase::m_bWasOnceWindowless | Флаг, указывающий, что элемент управления был бессерверным, но может или не быть оконным сейчас. |
CComControlBase::m_bWindowOnly | Флаг, указывающий на окно элемента управления, даже если контейнер поддерживает элементы управления без окон. |
CComControlBase::m_bWndLess | Флаг, указывающий, что элемент управления является бессерверным. |
CComControlBase::m_hWndCD | Содержит ссылку на дескриптор окна, связанный с элементом управления. |
CComControlBase::m_nFreezeEvents | Количество раз, когда контейнер заморозил события (отказано принимать события) без промежуточного оттепеля событий (принятие событий). |
CComControlBase::m_rcPos | Позиция в пикселях элемента управления, выраженная в координатах контейнера. |
CComControlBase::m_sizeExtent | Степень элемента управления в единицах HIMETRIC (каждая единица составляет 0,01 миллиметра) для определенного дисплея. |
CComControlBase::m_sizeNatural | Физический размер элемента управления в единицах HIMETRIC (каждая единица составляет 0,01 миллиметра). |
CComControlBase::m_spAdviseSink | Прямой указатель на консультативное подключение к контейнеру (IAdviseSink контейнера). |
CComControlBase::m_spAmbientDispatch | CComDispatchDriver Объект, который позволяет извлекать и задавать свойства контейнера с помощью IDispatch указателя. |
CComControlBase::m_spClientSite | Указатель на клиентский сайт элемента управления в контейнере. |
CComControlBase::m_spDataAdviseHolder | Предоставляет стандартные средства для хранения консультативных подключений между объектами данных и создания приемников. |
CComControlBase::m_spInPlaceSite | Указатель на указатель интерфейса IOleInPlaceSite контейнера, IOleInPlaceSiteEx или указатель интерфейса IOleInPlaceSiteWindowless. |
CComControlBase::m_spOleAdviseHolder | Предоставляет стандартную реализацию способа хранения консультативных подключений. |
Замечания
Этот класс предоставляет методы для создания элементов управления ATL и управления ими. Класс CComControl является производным от CComControlBase
. При создании элемента управления Standard Control или DHTML с помощью мастера управления ATL мастер автоматически наследует класс.CComControlBase
Дополнительные сведения о создании элемента управления см. в руководстве по ATL. Дополнительные сведения о мастере проектов ATL см. в статье "Создание проекта ATL".
Требования
Header: atlctl.h
CComControlBase::AppearanceType
Переопределите, если свойство m_nAppearance
акций не является типом short
.
typedef short AppearanceType;
Замечания
Мастер управления ATL добавляет m_nAppearance
свойство типа short. Переопределите, если используется AppearanceType
другой тип данных.
CComControlBase::CComControlBase
Конструктор.
CComControlBase(HWND& h);
Параметры
ч
Дескриптор окна, связанного с элементом управления.
Замечания
Инициализирует размер элемента управления до 5080X5080 единиц HIMETRIC (2"X2") и инициализирует CComControlBase
значения элементов данных значение NULL или FALSE.
CComControlBase::~CComControlBase
Деструктор
~CComControlBase();
Замечания
Если элемент управления установлен, ~CComControlBase
он уничтожается путем вызова DestroyWindow.
CComControlBase::ControlQueryInterface
Извлекает указатель на запрошенный интерфейс.
virtual HRESULT ControlQueryInterface(const IID& iid,
void** ppv);
Параметры
iid
Идентификатор GUID запрашиваемого интерфейса.
ppv
Указатель на указатель интерфейса, определяемый iid или NULL, если интерфейс не найден.
Замечания
Обрабатывает только интерфейсы в таблице карты COM.
Пример
// Retrieve the control's IOleObject interface. Note interface
// is automatically released when pOleObject goes out of scope
CComPtr<IOleObject> pOleObject;
ControlQueryInterface(IID_IOleObject, (void**)&pOleObject);
CComControlBase::D oesVerbActivate
Проверяет, что параметр iVerb, используемый в IOleObjectImpl::DoVerb
пользовательском интерфейсе элемента управления (iVerb равно OLEIVERB_UIACTIVATE), определяет действие, выполняемое при двойном щелчке элемента управления (iVerb равно OLEIVERB_PRIMARY), отображает элемент управления (iVerb равно OLEIVERB_SHOW) или активирует элемент управления (iVerb равно OLEIVERB_INPLACEACTIVATE).
BOOL DoesVerbActivate(LONG iVerb);
Параметры
iVerb
Значение, указывающее действие, выполняемое DoVerb
.
Возвращаемое значение
Возвращает значение TRUE, если iVerb равен OLEIVERB_UIACTIVATE, OLEIVERB_PRIMARY, OLEIVERB_SHOW или OLEIVERB_INPLACEACTIVATE; в противном случае возвращает значение FALSE.
Замечания
Этот метод можно переопределить, чтобы определить собственную команду активации.
CComControlBase::D oesVerbUIActivate
Проверяет, что параметр iVerb , используемый пользовательским IOleObjectImpl::DoVerb
интерфейсом элемента управления, активируется и возвращает значение TRUE.
BOOL DoesVerbUIActivate(LONG iVerb);
Параметры
iVerb
Значение, указывающее действие, выполняемое DoVerb
.
Возвращаемое значение
Возвращает значение TRUE, если iVerb равен OLEIVERB_UIACTIVATE, OLEIVERB_PRIMARY, OLEIVERB_SHOW или OLEIVERB_INPLACEACTIVATE. В противном случае метод возвращает ЗНАЧЕНИЕ FALSE.
CComControlBase::DoVerbProperties
Отображает страницы свойств элемента управления.
HRESULT DoVerbProperties(LPCRECT /* prcPosRect */, HWND hwndParent);
Параметры
prcPosRec
Зарезервировано.
hwndParent
Дескриптор окна, содержащего элемент управления.
Возвращаемое значение
Одно из стандартных значений HRESULT.
Пример
// The following implementation of the WM_RBUTTONDOWN message handler
// will pop up the ActiveX Control's PropertyPages
LRESULT CMyComposite::OnRButtonDown(UINT /*uMsg*/, WPARAM /*wParam*/,
LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
DoVerbProperties(NULL, ::GetActiveWindow());
return 0L;
}
MESSAGE_HANDLER(WM_RBUTTONDOWN, OnRButtonDown)
CComControlBase::FireViewChange
Вызовите этот метод, чтобы сообщить контейнеру перераскрыть элемент управления или уведомить зарегистрированные приемники советов о том, что представление элемента управления изменилось.
HRESULT FireViewChange();
Возвращаемое значение
Одно из стандартных значений HRESULT.
Замечания
Если элемент управления активен (член данных класса элемента управления CComControlBase::m_bInPlaceActive имеет значение TRUE), уведомляет контейнер, который требуется перераскрыть весь элемент управления. Если элемент управления неактивен, уведомляет зарегистрированные приемники советов элемента управления (через элемент CComControlBase::m_spAdviseSink), что представление элемента управления изменилось.
Пример
STDMETHODIMP CMyControl::put_Shape(int newVal)
{
// store newVal in m_nShape user-defined member
m_nShape = newVal;
// notify container to redraw control
FireViewChange();
return S_OK;
}
CComControlBase::GetAmbientAppearance
Извлекает DISPID_AMBIENT_APPEARANCE, текущий параметр внешнего вида элемента управления: 0 для плоских и 1 для 3D.
HRESULT GetAmbientAppearance(short& nAppearance);
Параметры
nAppearance
Свойство DISPID_AMBIENT_APPEARANCE.
Возвращаемое значение
Одно из стандартных значений HRESULT.
Пример
HRESULT OnDraw(ATL_DRAWINFO& di)
{
short nAppearance;
RECT& rc = *(RECT*)di.prcBounds;
// draw 3D border if AmbientAppearance is not supported or is set to 1
HRESULT hr = GetAmbientAppearance(nAppearance);
if (hr != S_OK || nAppearance==1)
{
DrawEdge(di.hdcDraw, &rc, EDGE_SUNKEN, BF_RECT);
}
else
{
Rectangle(di.hdcDraw, rc.left, rc.top, rc.right, rc.bottom);
}
SetTextAlign(di.hdcDraw, TA_CENTER|TA_BASELINE);
LPCTSTR pszText = _T("ATL 8.0 : MyControl");
// For security reasons, we recommend that you use the lstrlen function
// with caution. Here, we can guarantee that pszText is NULL terminated,
// and therefore it is safe to use this function.
TextOut(di.hdcDraw,
(rc.left + rc.right) / 2,
(rc.top + rc.bottom) / 2,
pszText,
lstrlen(pszText));
return S_OK;
}
CComControlBase::GetAmbientAutoClip
Получает DISPID_AMBIENT_AUTOCLIP, флаг, указывающий, поддерживает ли контейнер автоматическую обрезку области отображения элемента управления.
HRESULT GetAmbientAutoClip(BOOL& bAutoClip);
Параметры
bAutoClip
Свойство DISPID_AMBIENT_AUTOCLIP.
Возвращаемое значение
Одно из стандартных значений HRESULT.
CComControlBase::GetAmbientBackColor
Извлекает DISPID_AMBIENT_BACKCOLOR, цвет фона окружающей среды для всех элементов управления, определенных контейнером.
HRESULT GetAmbientBackColor(OLE_COLOR& BackColor);
Параметры
BackColor
Свойство DISPID_AMBIENT_BACKCOLOR.
Возвращаемое значение
Одно из стандартных значений HRESULT.
CComControlBase::GetAmbientCharSet
Извлекает DISPID_AMBIENT_CHARSET, внешний набор символов для всех элементов управления, определенных контейнером.
HRESULT GetAmbientCharSet(BSTR& bstrCharSet);
Параметры
bstrCharSet
Свойство DISPID_AMBIENT_CHARSET.
Возвращаемое значение
Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.
CComControlBase::GetAmbientCodePage
Извлекает DISPID_AMBIENT_CODEPAGE, страницу внешнего кода для всех элементов управления, определенных контейнером.
HRESULT GetAmbientCodePage(ULONG& ulCodePage);
Параметры
ulCodePage
Свойство DISPID_AMBIENT_CODEPAGE.
Возвращаемое значение
Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.
CComControlBase::GetAmbientDisplayAsDefault
Получает DISPID_AMBIENT_DISPLAYASDEFAULT, флаг, который имеет значение TRUE, если контейнер помечает элемент управления на этом сайте, чтобы быть кнопкой по умолчанию, и поэтому элемент управления кнопкой должен нарисовать себя с более толстым кадром.
HRESULT GetAmbientDisplayAsDefault(BOOL& bDisplayAsDefault);
Параметры
bDisplayAsDefault
Свойство DISPID_AMBIENT_DISPLAYASDEFAULT.
Возвращаемое значение
Одно из стандартных значений HRESULT.
CComControlBase::GetAmbientDisplayName
Получает DISPID_AMBIENT_DISPLAYNAME, имя контейнера, предоставленное элементу управления.
HRESULT GetAmbientDisplayName(BSTR& bstrDisplayName);
Параметры
bstrDisplayName
Свойство DISPID_AMBIENT_DISPLAYNAME.
Возвращаемое значение
Одно из стандартных значений HRESULT.
CComControlBase::GetAmbientFont
Извлекает указатель на внешний IFont
интерфейс контейнера.
HRESULT GetAmbientFont(IFont** ppFont);
Параметры
ppFont
Указатель на внешний интерфейс IFont контейнера.
Возвращаемое значение
Одно из стандартных значений HRESULT.
Замечания
Если свойство равно NULL, указатель имеет значение NULL. Если указатель не имеет значения NULL, вызывающий объект должен освободить указатель.
CComControlBase::GetAmbientFontDisp
Извлекает указатель на внешний IFontDisp
интерфейс диспетчера контейнера.
HRESULT GetAmbientFontDisp(IFontDisp** ppFont);
Параметры
ppFont
Указатель на внешний интерфейс диспетчера IFontDisp контейнера.
Возвращаемое значение
Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.
Замечания
Если свойство равно NULL, указатель имеет значение NULL. Если указатель не имеет значения NULL, вызывающий объект должен освободить указатель.
CComControlBase::GetAmbientForeColor
Извлекает DISPID_AMBIENT_FORECOLOR цвет внешнего плана для всех элементов управления, определенных контейнером.
HRESULT GetAmbientForeColor(OLE_COLOR& ForeColor);
Параметры
ForeColor
Свойство DISPID_AMBIENT_FORECOLOR.
Возвращаемое значение
Одно из стандартных значений HRESULT.
CComControlBase::GetAmbientLocaleID
Извлекает DISPID_AMBIENT_LOCALEID идентификатор языка, используемого контейнером.
HRESULT GetAmbientLocaleID(LCID& lcid);
Параметры
lcid
Свойство DISPID_AMBIENT_LOCALEID.
Возвращаемое значение
Одно из стандартных значений HRESULT.
Замечания
Элемент управления может использовать этот идентификатор для адаптации пользовательского интерфейса к разным языкам.
CComControlBase::GetAmbientMessageReflect
Извлекает DISPID_AMBIENT_MESSAGEREFLECT, флаг, указывающий, хочет ли контейнер получать сообщения окна (например WM_DRAWITEM
, события).
HRESULT GetAmbientMessageReflect(BOOL& bMessageReflect);
Параметры
bMessageReflect
Свойство DISPID_AMBIENT_MESSAGEREFLECT.
Возвращаемое значение
Одно из стандартных значений HRESULT.
CComControlBase::GetAmbientPalette
Извлекает DISPID_AMBIENT_PALETTE, используемый для доступа к HPALETTE контейнера.
HRESULT GetAmbientPalette(HPALETTE& hPalette);
Параметры
hPalette
Свойство DISPID_AMBIENT_PALETTE.
Возвращаемое значение
Одно из стандартных значений HRESULT.
CComControlBase::GetAmbientProperty
Извлекает свойство контейнера, указанное в диспидах.
HRESULT GetAmbientProperty(DISPID dispid, VARIANT& var);
Параметры
dispid
Идентификатор извлекаемого свойства контейнера.
var
Переменная для получения свойства.
Возвращаемое значение
Одно из стандартных значений HRESULT.
Замечания
ATL предоставил набор вспомогательных функций для получения определенных свойств, например CComControlBase::GetAmbientBackColor. Если подходящий метод недоступен, используйте GetAmbientProperty
.
CComControlBase::GetAmbientRightToLeft
Извлекает DISPID_AMBIENT_RIGHTTOLEFT, направление, в котором содержимое отображается контейнером.
HRESULT GetAmbientRightToLeft(BOOL& bRightToLeft);
Параметры
bRightToLeft
Свойство DISPID_AMBIENT_RIGHTTOLEFT. Установите значение TRUE, если содержимое отображается справа налево, значение FALSE, если оно отображается слева направо.
Возвращаемое значение
Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.
CComControlBase::GetAmbientScaleUnits
Извлекает DISPID_AMBIENT_SCALEUNITS, внешние единицы контейнера (например, дюймы или сантиметры) для отображения меток.
HRESULT GetAmbientScaleUnits(BSTR& bstrScaleUnits);
Параметры
bstrScaleUnits
Свойство DISPID_AMBIENT_SCALEUNITS.
Возвращаемое значение
Одно из стандартных значений HRESULT.
CComControlBase::GetAmbientShowGrabHandles
Извлекает DISPID_AMBIENT_SHOWGRABHANDLES, флаг, указывающий, позволяет ли контейнеру отображать дескриптор захвата для себя при активности.
HRESULT GetAmbientShowGrabHandles(BOOL& bShowGrabHandles);
Параметры
bShowGrabHandles
Свойство DISPID_AMBIENT_SHOWGRABHANDLES.
Возвращаемое значение
Одно из стандартных значений HRESULT.
CComControlBase::GetAmbientShowHatching
Извлекает DISPID_AMBIENT_SHOWHATCHING, флаг, указывающий, позволяет ли контейнеру отображаться сам элемент управления с люком, когда пользовательский интерфейс элемента управления активен.
HRESULT GetAmbientShowHatching(BOOL& bShowHatching);
Параметры
bShowHatching
Свойство DISPID_AMBIENT_SHOWHATCHING.
Возвращаемое значение
Одно из стандартных значений HRESULT.
CComControlBase::GetAmbientSupportsMnemonics
Получает DISPID_AMBIENT_SUPPORTSMNEMONICS, флаг, указывающий, поддерживает ли контейнер mnemonics клавиатуру.
HRESULT GetAmbientSupportsMnemonics(BOOL& bSupportsMnemonics);
Параметры
bSupportsMnemonics
Свойство DISPID_AMBIENT_SUPPORTSMNEMONICS.
Возвращаемое значение
Одно из стандартных значений HRESULT.
CComControlBase::GetAmbientTextAlign
Извлекает DISPID_AMBIENT_TEXTALIGN, предпочтительное выравнивание текста контейнером: 0 для общего выравнивания (чисел вправо, текст слева), 1 для выравнивания по левому краю, 2 для выравнивания центра и 3 для выравнивания вправо.
HRESULT GetAmbientTextAlign(short& nTextAlign);
Параметры
nTextAlign
Свойство DISPID_AMBIENT_TEXTALIGN.
Возвращаемое значение
Одно из стандартных значений HRESULT.
CComControlBase::GetAmbientTopToBottom
Извлекает DISPID_AMBIENT_TOPTOBOTTOM, направление, в котором содержимое отображается контейнером.
HRESULT GetAmbientTopToBottom(BOOL& bTopToBottom);
Параметры
bTopToBottom
Свойство DISPID_AMBIENT_TOPTOBOTTOM. Установите значение TRUE, если текст отображается сверху вниз, значение FALSE, если оно отображается внизу вверху.
Возвращаемое значение
Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.
CComControlBase::GetAmbientUIDead
Получает DISPID_AMBIENT_UIDEAD, флаг, указывающий, требуется ли элементу управления реагировать на действия пользовательского интерфейса.
HRESULT GetAmbientUIDead(BOOL& bUIDead);
Параметры
bUIDead
Свойство DISPID_AMBIENT_UIDEAD.
Возвращаемое значение
Одно из стандартных значений HRESULT.
Замечания
Если значение TRUE, элемент управления не должен отвечать. Этот флаг применяется независимо от флага DISPID_AMBIENT_USERMODE. См. раздел CComControlBase::GetAmbientUserMode.
CComControlBase::GetAmbientUserMode
Получает DISPID_AMBIENT_USERMODE, флаг, указывающий, находится ли контейнер в режиме выполнения (TRUE) или в режиме разработки (FALSE).
HRESULT GetAmbientUserMode(BOOL& bUserMode);
Параметры
bUserMode
Свойство DISPID_AMBIENT_USERMODE.
Возвращаемое значение
Одно из стандартных значений HRESULT.
CComControlBase::GetDirty
Возвращает значение элемента m_bRequiresSave
данных.
BOOL GetDirty();
Возвращаемое значение
Возвращает значение элемента данных m_bRequiresSave.
Замечания
Это значение задается с помощью CComControlBase::SetDirty.
CComControlBase::GetZoomInfo
Извлекает значения x и y числителя и знаменателя коэффициента масштабирования для элемента управления, активированного для редактирования на месте.
void GetZoomInfo(ATL_DRAWINFO& di);
Параметры
ди
Структура, которая будет содержать числитель и знаменатель коэффициента масштабирования. Дополнительные сведения см. в ATL_DRAWINFO.
Замечания
Коэффициент масштабирования — это доля естественного размера элемента управления в его текущей степени.
CComControlBase::InPlaceActivate
Вызывает переход элемента управления из неактивного состояния в любое состояние команды в iVerb .
HRESULT InPlaceActivate(LONG iVerb, const RECT* prcPosRect = NULL);
Параметры
iVerb
Значение, указывающее действие, выполняемое IOleObjectImpl::D oVerb.
prcPosRect
Указатель на положение элемента управления на месте.
Возвращаемое значение
Одно из стандартных значений HRESULT.
Замечания
Перед активацией этот метод проверяет наличие клиентского сайта элемента управления, проверяет, сколько элементов управления отображается и получает расположение элемента управления в родительском окне. После активации элемента управления этот метод активирует пользовательский интерфейс элемента управления и сообщает контейнеру, чтобы сделать элемент управления видимым.
Этот метод также извлекает IOleInPlaceSite
IOleInPlaceSiteEx
IOleInPlaceSiteWindowless
указатель интерфейса для элемента управления и сохраняет его в элементе CComControlBase класса элемента управления::m_spInPlaceSite. Члены данных класса управления CComControlBase::m_bInPlaceSiteEx, CComControlBase::m_bWndLess, CComControlBase::m_bWasOnceWindowless и CComControlBase::m_bNegotiatedWnd имеют значение true в соответствии с соответствующими параметрами.
CComControlBase::InternalGetSite
Вызовите этот метод, чтобы запросить сайт элемента управления для указателя на определенный интерфейс.
HRESULT InternalGetSite(REFIID riid, void** ppUnkSite);
Параметры
riid
IiD указателя интерфейса, который должен быть возвращен в ppUnkSite.
ppUnkSite
Адрес переменной указателя, которая получает указатель интерфейса, запрошенный в riid.
Возвращаемое значение
Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.
Замечания
Если сайт поддерживает интерфейс, запрошенный в riid, указатель возвращается с помощью ppUnkSite. В противном случае для ppUnkSite задано значение NULL.
CComControlBase::m_bAutoSize
Флаг, указывающий, что элемент управления не может быть любым другим размером.
unsigned m_bAutoSize:1;
Замечания
Этот флаг проверяется IOleObjectImpl::SetExtent
и, если значение TRUE, вызывает возврат функции E_FAIL.
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
При добавлении параметра автомасштабирования на вкладке "Свойства запасов" мастера управления ATL мастер автоматически создает этот элемент данных в классе элементов управления, создает методы размещения и получения методов для свойства и поддерживает IPropertyNotifySink , чтобы автоматически уведомлять контейнер при изменении свойства.
CComControlBase::m_bDrawFromNatural
Флаг, указывающий, что IDataObjectImpl::GetData
и CComControlBase::GetZoomInfo
должен задавать размер элемента управления, m_sizeNatural
а не из m_sizeExtent
.
unsigned m_bDrawFromNatural:1;
Замечания
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
CComControlBase::m_bDrawGetDataInHimetric
Флаг, указывающий, что IDataObjectImpl::GetData
при рисовании следует использовать единицы HIMETRIC, а не пиксели.
unsigned m_bDrawGetDataInHimetric:1;
Замечания
Каждая логическая единица HIMETRIC составляет 0,01 миллиметра.
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
CComControlBase::m_bInPlaceActive
Флаг, указывающий, что элемент управления активен на месте.
unsigned m_bInPlaceActive:1;
Замечания
Это означает, что элемент управления отображается и его окно, если таковое имеется, но его меню и панели инструментов могут не быть активными. Флаг m_bUIActive
указывает, что пользовательский интерфейс элемента управления, например меню, также активен.
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
CComControlBase::m_bInPlaceSiteEx
Флаг, указывающий на контейнер, поддерживает функции управления интерфейсом IOleInPlaceSiteEx
и OCX96, такие как элементы управления без окон и без окон.
unsigned m_bInPlaceSiteEx:1;
Замечания
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
Член m_spInPlaceSite
данных указывает на интерфейс IOleInPlaceSite, IOleInPlaceSiteEx или IOleInPlaceSiteWindowless в зависимости от значения m_bWndLess
и m_bInPlaceSiteEx
флагов. (Элемент данных m_bNegotiatedWnd
должен иметь значение TRUE, чтобы m_spInPlaceSite
указатель был допустимым.)
Если m_bWndLess
имеет значение FALSE и m_bInPlaceSiteEx
имеет значение TRUE, m_spInPlaceSite
это IOleInPlaceSiteEx
указатель интерфейса. Сведения о связи между этими тремя элементами данных см . в m_spInPlaceSite таблицы.
CComControlBase::m_bNegotiatedWnd
Флаг, указывающий, согласуется ли элемент управления с контейнером о поддержке функций управления OCX96 (таких как элементы управления без мерцания и без окон), а также указывает, находится ли элемент управления в окне или без окон.
unsigned m_bNegotiatedWnd:1;
Замечания
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
Флаг m_bNegotiatedWnd
должен иметь значение TRUE, чтобы указатель был допустимым m_spInPlaceSite
.
CComControlBase::m_bRecomposeOnResize
Флаг, указывающий, что элемент управления хочет перекомпозировать презентацию, когда контейнер изменяет размер дисплея элемента управления.
unsigned m_bRecomposeOnResize:1;
Замечания
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
Этот флаг проверяется IOleObjectImpl::SetExtent и, если значение TRUE, SetExtent
уведомляет контейнер изменений представления. Если этот флаг задан, OLEMISC_RECOMPOSEONRESIZE бит в перечислении OLEMISC также должен быть задан.
CComControlBase::m_bRequiresSave
Флаг, указывающий, что элемент управления изменился с момента последнего сохранения.
unsigned m_bRequiresSave:1;
Замечания
Значение m_bRequiresSave
можно задать с помощью CComControlBase::SetDirty и получить с помощью CComControlBase::GetDirty.
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
CComControlBase::m_bResizeNatural
Флаг, указывающий, что элемент управления хочет изменить размер его естественной степени (его немасштабированный физический размер) при изменении размера дисплея элемента управления.
unsigned m_bResizeNatural:1;
Замечания
Этот флаг проверяется IOleObjectImpl::SetExtent
и, если значение TRUE, в который SetExtent
передается размер, присваивается m_sizeNatural
.
Размер, передаваемый в SetExtent
, всегда назначается m_sizeExtent
независимо от значения m_bResizeNatural
.
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
CComControlBase::m_bUIActive
Флаг, указывающий пользовательский интерфейс элемента управления, например меню и панели инструментов, активен.
unsigned m_bUIActive:1;
Замечания
Флаг m_bInPlaceActive
указывает, что элемент управления активен, но не является активным его пользовательский интерфейс.
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
CComControlBase::m_bUsingWindowRgn
Флаг, указывающий, что элемент управления использует область окна, предоставляемую контейнером.
unsigned m_bUsingWindowRgn:1;
Замечания
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
CComControlBase::m_bWasOnceWindowless
Флаг, указывающий, что элемент управления был бессерверным, но может или не быть оконным сейчас.
unsigned m_bWasOnceWindowless:1;
Замечания
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
CComControlBase::m_bWindowOnly
Флаг, указывающий на окно элемента управления, даже если контейнер поддерживает элементы управления без окон.
unsigned m_bWindowOnly:1;
Замечания
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
CComControlBase::m_bWndLess
Флаг, указывающий, что элемент управления является бессерверным.
unsigned m_bWndLess:1;
Замечания
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
Член m_spInPlaceSite
данных указывает на интерфейс IOleInPlaceSite, IOleInPlaceSiteEx или IOleInPlaceSiteWindowless в зависимости от значения m_bWndLess
флагов CComControlBase ::m_bInPlaceSiteEx . (Член данныхCComControlBase::m_bNegotiatedWnd должен иметь значение TRUE для допустимого указателя CComControlBase::m_spInPlaceSite.)
Если m_bWndLess
имеет значение TRUE, m_spInPlaceSite
это IOleInPlaceSiteWindowless
указатель интерфейса. Сведения о полной связи между этими элементами данных см. в разделе CComControlBase::m_spInPlaceSite таблицы.
CComControlBase::m_hWndCD
Содержит ссылку на дескриптор окна, связанный с элементом управления.
HWND& m_hWndCD;
Замечания
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
CComControlBase::m_nFreezeEvents
Количество раз, когда контейнер заморозил события (отказано принимать события) без промежуточного оттепеля событий (принятие событий).
short m_nFreezeEvents;
Замечания
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
CComControlBase::m_rcPos
Позиция в пикселях элемента управления, выраженная в координатах контейнера.
RECT m_rcPos;
Замечания
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
CComControlBase::m_sizeExtent
Степень элемента управления в единицах HIMETRIC (каждая единица составляет 0,01 миллиметра) для определенного дисплея.
SIZE m_sizeExtent;
Замечания
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
Этот размер масштабируется отображением. Физический размер элемента управления указан в элементе m_sizeNatural
данных и исправлен.
Размер можно преобразовать в пиксели с помощью глобальной функции AtlHiMetricToPixel.
CComControlBase::m_sizeNatural
Физический размер элемента управления в единицах HIMETRIC (каждая единица составляет 0,01 миллиметра).
SIZE m_sizeNatural;
Замечания
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
Этот размер фиксирован, а размер m_sizeExtent
масштабируется дисплеем.
Размер можно преобразовать в пиксели с помощью глобальной функции AtlHiMetricToPixel.
CComControlBase::m_spAdviseSink
Прямой указатель на консультативное подключение к контейнеру (IAdviseSink контейнера).
CComPtr<IAdviseSink>
m_spAdviseSink;
Замечания
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
CComControlBase::m_spAmbientDispatch
CComDispatchDriver
Объект, позволяющий извлекать и задавать свойства объекта с помощью IDispatch
указателя.
CComDispatchDriver m_spAmbientDispatch;
Замечания
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
CComControlBase::m_spClientSite
Указатель на клиентский сайт элемента управления в контейнере.
CComPtr<IOleClientSite>
m_spClientSite;
Замечания
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
CComControlBase::m_spDataAdviseHolder
Предоставляет стандартные средства для хранения консультативных подключений между объектами данных и создания приемников.
CComPtr<IDataAdviseHolder>
m_spDataAdviseHolder;
Замечания
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
Объект данных — это элемент управления, который может передавать данные и реализует IDataObject, методы которого указывают формат и носитель передачи данных.
m_spDataAdviseHolder
Интерфейс реализует методы IDataObject::D Advise и IDataObject::D Unadvise для установления и удаления консультативных подключений к контейнеру. Контейнер элемента управления должен реализовать приемник рекомендаций, поддерживая интерфейс IAdviseSink .
CComControlBase::m_spInPlaceSite
Указатель на указатель интерфейса IOleInPlaceSite контейнера, IOleInPlaceSiteEx или указатель интерфейса IOleInPlaceSiteWindowless.
CComPtr<IOleInPlaceSiteWindowless>
m_spInPlaceSite;
Замечания
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
Указатель m_spInPlaceSite
действителен, только если флаг m_bNegotiatedWnd имеет значение TRUE.
В следующей таблице показано, как тип указателя m_spInPlaceSite
зависит от флагов элементов данных m_bWndLess и m_bInPlaceSiteEx :
Тип m_spInPlaceSite | значение m_bWndLess | значение m_bInPlaceSiteEx |
---|---|---|
IOleInPlaceSiteWindowless |
TRUE | TRUE или FALSE |
IOleInPlaceSiteEx |
FALSE | TRUE |
IOleInPlaceSite |
FALSE | FALSE |
CComControlBase::m_spOleAdviseHolder
Предоставляет стандартную реализацию способа хранения консультативных подключений.
CComPtr<IOleAdviseHolder>
m_spOleAdviseHolder;
Замечания
Примечание.
Чтобы использовать этот элемент данных в классе элемента управления, необходимо объявить его как член данных в классе элемента управления. Класс управления не наследует этот элемент данных от базового класса, так как он объявлен в союзе в базовом классе.
m_spOleAdviseHolder
Интерфейс реализует методы IOleObject::Advise и IOleObject::Unadvise для установления и удаления консультативных подключений к контейнеру. Контейнер элемента управления должен реализовать приемник рекомендаций, поддерживая интерфейс IAdviseSink .
CComControlBase::OnDraw
Переопределите этот метод, чтобы нарисовать элемент управления.
virtual HRESULT OnDraw(ATL_DRAWINFO& di);
Параметры
ди
Ссылка на структуру ATL_DRAWINFO , содержащую сведения о рисовании, такие как аспект рисования, границы элементов управления и оптимизированы ли рисунки.
Возвращаемое значение
Стандартное значение HRESULT.
Замечания
Значение по умолчанию OnDraw
удаляет или восстанавливает контекст устройства или ничего не делает, в зависимости от флагов, заданных в CComControlBase::OnDrawAdvanced.
Метод OnDraw
автоматически добавляется в класс управления при создании элемента управления с помощью мастера управления ATL. По умолчанию OnDraw
мастер рисует прямоугольник с меткой ATL 8.0.
Пример
См. пример CComControlBase ::GetAmbientAppearance.
CComControlBase::OnDrawAdvanced
Значение по умолчанию OnDrawAdvanced
подготавливает нормализованный контекст устройства для рисования, а затем вызывает метод класса OnDraw
управления.
virtual HRESULT OnDrawAdvanced(ATL_DRAWINFO& di);
Параметры
ди
Ссылка на структуру ATL_DRAWINFO , содержащую сведения о рисовании, такие как аспект рисования, границы элементов управления и оптимизированы ли рисунки.
Возвращаемое значение
Стандартное значение HRESULT.
Замечания
Переопределите этот метод, если вы хотите принять контекст устройства, переданный контейнером, без нормализации.
Дополнительные сведения см. в разделе CComControlBase::OnDraw .
CComControlBase::OnKillFocus
Проверяет, что элемент управления активен и имеет допустимый сайт управления, а затем сообщает контейнеру, что элемент управления потерял фокус.
LRESULT OnKillFocus(UINT /* nMsg */,
WPARAM /* wParam */,
LPARAM /* lParam */,
BOOL& bHandled);
Параметры
nMsg
Зарезервировано.
wParam
Зарезервировано.
lParam
Зарезервировано.
bHandled
Флаг, указывающий, успешно ли обработано сообщение окна. Значение по умолчанию — FALSE.
Возвращаемое значение
Всегда возвращает значение 1.
CComControlBase::OnMouseActivate
Проверяет, находится ли пользовательский интерфейс в пользовательском режиме, а затем активирует элемент управления.
LRESULT OnMouseActivate(UINT /* nMsg */,
WPARAM /* wParam */,
LPARAM /* lParam */,
BOOL& bHandled);
Параметры
nMsg
Зарезервировано.
wParam
Зарезервировано.
lParam
Зарезервировано.
bHandled
Флаг, указывающий, успешно ли обработано сообщение окна. Значение по умолчанию — FALSE.
Возвращаемое значение
Всегда возвращает значение 1.
CComControlBase::OnPaint
Подготавливает контейнер для рисования, получает клиентскую область элемента управления, а затем вызывает метод класса OnDrawAdvanced
элемента управления.
LRESULT OnPaint(UINT /* nMsg */,
WPARAM wParam,
LPARAM /* lParam */,
BOOL& /* lResult */);
Параметры
nMsg
Зарезервировано.
wParam
Существующий HDC.
lParam
Зарезервировано.
lResult
Зарезервировано.
Возвращаемое значение
Всегда возвращает значение 0.
Замечания
Если wParam не имеет значения NULL, предполагается, OnPaint
что он содержит допустимый HDC и использует его вместо CComControlBase::m_hWndCD.
CComControlBase::OnSetFocus
Проверяет, является ли элемент управления активным и имеет допустимый сайт элемента управления, а затем сообщает контейнеру, что элемент управления получил фокус.
LRESULT OnSetFocus(UINT /* nMsg */,
WPARAM /* wParam */,
LPARAM /* lParam */,
BOOL& bHandled);
Параметры
nMsg
Зарезервировано.
wParam
Зарезервировано.
lParam
Зарезервировано.
bHandled
Флаг, указывающий, успешно ли обработано сообщение окна. Значение по умолчанию — FALSE.
Возвращаемое значение
Всегда возвращает значение 1.
Замечания
Отправляет уведомление контейнеру, который элемент управления получил.
CComControlBase::P reTranslateAccelerator
Переопределите этот метод, чтобы предоставить собственные обработчики акселератора клавиатуры.
BOOL PreTranslateAccelerator(LPMSG /* pMsg */,
HRESULT& /* hRet */);
Параметры
pMsg
Зарезервировано.
hRet
Зарезервировано.
Возвращаемое значение
По умолчанию возвращает значение FALSE.
CComControlBase::SendOnClose
Уведомляет все приемники рекомендаций, зарегистрированные в владельце совета, что контроль был закрыт.
HRESULT SendOnClose();
Возвращаемое значение
Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.
Замечания
Отправляет уведомление о закрытии элемента управления своими приемниками рекомендаций.
CComControlBase::SendOnDataChange
Уведомляет все приемники рекомендаций, зарегистрированные в владельце совета, что изменены данные управления.
HRESULT SendOnDataChange(DWORD advf = 0);
Параметры
advf
Советы по флагам, указывающим, как выполняется вызов IAdviseSink ::OnDataChange . Значения относятся к перечислению ADVF .
Возвращаемое значение
Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.
CComControlBase::SendOnRename
Уведомляет все приемники рекомендаций, зарегистрированные в владельце совета, что элемент управления имеет новый моникер.
HRESULT SendOnRename(IMoniker* pmk);
Параметры
pmk
Указатель на новый моникер элемента управления.
Возвращаемое значение
Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.
Замечания
Отправляет уведомление о том, что моникер для элемента управления изменился.
CComControlBase::SendOnSave
Уведомляет все приемники рекомендаций, зарегистрированные в владельце совета, что элемент управления сохранен.
HRESULT SendOnSave();
Возвращаемое значение
Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.
Замечания
Отправляет уведомление о том, что элемент управления только что сохранил свои данные.
CComControlBase::SendOnViewChange
Уведомляет все зарегистрированные приемники рекомендаций о том, что представление элемента управления изменилось.
HRESULT SendOnViewChange(DWORD dwAspect, LONG lindex = -1);
Параметры
dwAspect
Аспект или представление элемента управления.
lindex
Часть измененного представления. Допустимо только -1.
Возвращаемое значение
Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.
Замечания
SendOnViewChange
вызывает IAdviseSink::OnViewChange. Единственное значение lindex , поддерживаемое в настоящее время, равно -1, которое указывает на то, что весь вид является интересом.
CComControlBase::SetControlFocus
Задает или удаляет фокус клавиатуры в элемент управления или из него.
BOOL SetControlFocus(BOOL bGrab);
Параметры
bGrab
Если значение TRUE, установите фокус клавиатуры на вызывающий элемент управления. Если значение FALSE, удаляет фокус клавиатуры из вызывающего элемента управления, если он имеет фокус.
Возвращаемое значение
Возвращает значение TRUE, если элемент управления успешно получает фокус; в противном случае — ЗНАЧЕНИЕ FALSE.
Замечания
Для элемента управления с окном вызывается функция SetFocus API Windows. Для элемента управления без окон вызывается IOleInPlaceSiteWindowless::SetFocus . С помощью этого вызова элемент управления без окна получает фокус клавиатуры и может реагировать на сообщения окна.
CComControlBase::SetDirty
Задает элемент m_bRequiresSave
данных значению в bDirty.
void SetDirty(BOOL bDirty);
Параметры
bDirty
Значение элемента данных CComControlBase::m_bRequiresSave.
Замечания
SetDirty(TRUE)
необходимо вызвать для флага, что элемент управления изменился с момента последнего сохранения. Значение m_bRequiresSave
извлекается с помощью CComControlBase::GetDirty.