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


Класс 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_AМБIENT_APPEARANCE, текущий параметр внешнего вида элемента управления: 0 для плоских и 1 для трехмерного.
CComControlBase::GetAmbientAutoClip Получает DISPID_AМБIENT_AUTOCпакет интерфейса пользователя, флаг, указывающий, поддерживает ли контейнер автоматическую обрезку области отображения элемента управления.
CComControlBase::GetAmbientBackColor Извлекает DISPID_AМБIENT_BACKCOLOR, цвет фона окружающей среды для всех элементов управления, определенных контейнером.
CComControlBase::GetAmbientCharSet Извлекает DISPID_AМБIENT_CHARSET, внешний набор символов для всех элементов управления, определенных контейнером.
CComControlBase::GetAmbientCodePage Извлекает DISPID_AМБIENT_CODEPAGE, внешний набор символов для всех элементов управления, определенных контейнером.
CComControlBase::GetAmbientDisplayAsDefault Извлекает DISPID_AМБIENT_DISPLAYASDEFAULT, флаг, который имеет значение TRUE, если контейнер помечает элемент управления на этом сайте, чтобы быть кнопкой по умолчанию, и поэтому элемент управления кнопкой должен нарисовать себя с более толстым кадром.
CComControlBase::GetAmbientDisplayName Извлекает DISPID_AМБIENT_DISPLAYNAME имя контейнера, предоставленного элементу управления.
CComControlBase::GetAmbientFont Извлекает указатель на внешний IFont интерфейс контейнера.
CComControlBase::GetAmbientFontDisp Извлекает указатель на внешний IFontDisp интерфейс диспетчера контейнера.
CComControlBase::GetAmbientForeColor Извлекает DISPID_AМБIENT_FORECOLOR цвет внешнего плана для всех элементов управления, определенных контейнером.
CComControlBase::GetAmbientLocaleID Извлекает DISPID_AМБIENT_LOCALEID идентификатор языка, используемого контейнером.
CComControlBase::GetAmbientMessage Рефлексия Извлекает DISPID_AМБIENT_MESSAGEREFLECT, флаг, указывающий, хочет ли контейнер получать сообщения окна (например, WM_DRAWITEM) как события.
CComControlBase::GetAmbientPalette Извлекает DISPID_AМБIENT_PALETTE, используемый для доступа к HPALETTE контейнера.
CComControlBase::GetAmbientProperty Извлекает свойство контейнера, указанное идентификатором.
CComControlBase::GetAmbientRightToLeft Извлекает DISPID_AМБIENT_RIGHTTOLEFT, направление, в котором содержимое отображается контейнером.
CComControlBase::GetAmbientScaleUnits Извлекает DISPID_AМБIENT_SCALEUNITS, внешние единицы контейнера (например, дюймы или сантиметры) для отображения меток.
CComControlBase::GetAmbientShowGrabHandles Извлекает DISPID_AМБIENT_SHOWGRABHANDLES, флаг, указывающий, позволяет ли контейнеру отображать дескриптора захвата при активности.
CComControlBase::GetAmbientShowHatching Получает DISPID_AМБIENT_SHOWHATCHING, флаг, указывающий, позволяет ли контейнеру отображаться сам элемент управления с люком при активном пользовательском интерфейсе.
CComControlBase::GetAmbientSupportsMnemonics Получает DISPID_AМБIENT_SUPPORTSMNEMONICS, флаг, указывающий, поддерживает ли контейнер mnemonics клавиатуру.
CComControlBase::GetAmbientTextAlign Извлекает DISPID_AМБIENT_TEXTALIGN, предпочтительное выравнивание текста контейнером: 0 для общего выравнивания (чисел справа, текста слева), 1 для выравнивания влево, 2 для выравнивания центра и 3 для выравнивания вправо.
CComControlBase::GetAmbientTopToBottom Извлекает DISPID_AМБIENT_TOPTOBOTTOM, направление, в котором содержимое отображается контейнером.
CComControlBase::GetAmbientUIDead Извлекает DISPID_AМБIENT_UIDEAD флаг, указывающий, требуется ли контейнеру реагировать на действия пользовательского интерфейса.
CComControlBase::GetAmbientUserMode Извлекает DISPID_AМБIENT_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_AМБIENT_APPEARANCE, текущий параметр внешнего вида элемента управления: 0 для плоских и 1 для трехмерного.

HRESULT GetAmbientAppearance(short& nAppearance);

Параметры

nAppearance
Свойство DISPID_AМБIENT_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_AМБIENT_AUTOCпакет интерфейса пользователя, флаг, указывающий, поддерживает ли контейнер автоматическую обрезку области отображения элемента управления.

HRESULT GetAmbientAutoClip(BOOL& bAutoClip);

Параметры

bAutoClip
Свойство DISPID_AМБIENT_AUTOCпакет интерфейса пользователя.

Возвращаемое значение

Одно из стандартных значений HRESULT.

CComControlBase::GetAmbientBackColor

Извлекает DISPID_AМБIENT_BACKCOLOR, цвет фона окружающей среды для всех элементов управления, определенных контейнером.

HRESULT GetAmbientBackColor(OLE_COLOR& BackColor);

Параметры

Backcolor
Свойство DISPID_AМБIENT_BACKCOLOR.

Возвращаемое значение

Одно из стандартных значений HRESULT.

CComControlBase::GetAmbientCharSet

Извлекает DISPID_AМБIENT_CHARSET, внешний набор символов для всех элементов управления, определенных контейнером.

HRESULT GetAmbientCharSet(BSTR& bstrCharSet);

Параметры

bstrCharSet
Свойство DISPID_AМБIENT_CHARSET.

Возвращаемое значение

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.

CComControlBase::GetAmbientCodePage

Извлекает DISPID_AМБIENT_CODEPAGE, страницу внешнего кода для всех элементов управления, определенных контейнером.

HRESULT GetAmbientCodePage(ULONG& ulCodePage);

Параметры

ulCodePage
Свойство DISPID_AМБIENT_CODEPAGE.

Возвращаемое значение

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.

CComControlBase::GetAmbientDisplayAsDefault

Извлекает DISPID_AМБIENT_DISPLAYASDEFAULT, флаг, который имеет значение TRUE, если контейнер помечает элемент управления на этом сайте, чтобы быть кнопкой по умолчанию, и поэтому элемент управления кнопкой должен нарисовать себя с более толстым кадром.

HRESULT GetAmbientDisplayAsDefault(BOOL& bDisplayAsDefault);

Параметры

bDisplayAsDefault
Свойство DISPID_AМБIENT_DISPLAYASDEFAULT.

Возвращаемое значение

Одно из стандартных значений HRESULT.

CComControlBase::GetAmbientDisplayName

Извлекает DISPID_AМБIENT_DISPLAYNAME имя контейнера, предоставленного элементу управления.

HRESULT GetAmbientDisplayName(BSTR& bstrDisplayName);

Параметры

bstrDisplayName
Свойство DISPID_AМБIENT_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_AМБIENT_FORECOLOR цвет внешнего плана для всех элементов управления, определенных контейнером.

HRESULT GetAmbientForeColor(OLE_COLOR& ForeColor);

Параметры

Forecolor
Свойство DISPID_AМБIENT_FORECOLOR.

Возвращаемое значение

Одно из стандартных значений HRESULT.

CComControlBase::GetAmbientLocaleID

Извлекает DISPID_AМБIENT_LOCALEID идентификатор языка, используемого контейнером.

HRESULT GetAmbientLocaleID(LCID& lcid);

Параметры

lcid
Свойство DISPID_AМБIENT_LOCALEID.

Возвращаемое значение

Одно из стандартных значений HRESULT.

Замечания

Элемент управления может использовать этот идентификатор для адаптации пользовательского интерфейса к разным языкам.

CComControlBase::GetAmbientMessage Рефлексия

Извлекает DISPID_AМБIENT_MESSAGEREFLECT, флаг, указывающий, хочет ли контейнер получать сообщения окна (напримерWM_DRAWITEM, события).

HRESULT GetAmbientMessageReflect(BOOL& bMessageReflect);

Параметры

bMessage Рефлексия
Свойство DISPID_AМБIENT_MESSAGEREFLECT.

Возвращаемое значение

Одно из стандартных значений HRESULT.

CComControlBase::GetAmbientPalette

Извлекает DISPID_AМБIENT_PALETTE, используемый для доступа к HPALETTE контейнера.

HRESULT GetAmbientPalette(HPALETTE& hPalette);

Параметры

hPalette
Свойство DISPID_AМБIENT_PALETTE.

Возвращаемое значение

Одно из стандартных значений HRESULT.

CComControlBase::GetAmbientProperty

Извлекает свойство контейнера, указанное в диспидах.

HRESULT GetAmbientProperty(DISPID dispid, VARIANT& var);

Параметры

Dispid
Идентификатор извлекаемого свойства контейнера.

var
Переменная для получения свойства.

Возвращаемое значение

Одно из стандартных значений HRESULT.

Замечания

ATL предоставил набор вспомогательных функций для получения определенных свойств, например CComControlBase::GetAmbientBackColor. Если подходящий метод недоступен, используйте GetAmbientProperty.

CComControlBase::GetAmbientRightToLeft

Извлекает DISPID_AМБIENT_RIGHTTOLEFT, направление, в котором содержимое отображается контейнером.

HRESULT GetAmbientRightToLeft(BOOL& bRightToLeft);

Параметры

bRightToLeft
Свойство DISPID_AМБIENT_RIGHTTOLEFT. Установите значение TRUE, если содержимое отображается справа налево, значение FALSE, если оно отображается слева направо.

Возвращаемое значение

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.

CComControlBase::GetAmbientScaleUnits

Извлекает DISPID_AМБIENT_SCALEUNITS, внешние единицы контейнера (например, дюймы или сантиметры) для отображения меток.

HRESULT GetAmbientScaleUnits(BSTR& bstrScaleUnits);

Параметры

bstrScaleUnits
Свойство DISPID_AМБIENT_SCALEUNITS.

Возвращаемое значение

Одно из стандартных значений HRESULT.

CComControlBase::GetAmbientShowGrabHandles

Извлекает DISPID_AМБIENT_SHOWGRABHANDLES, флаг, указывающий, позволяет ли контейнеру отображать дескриптора захвата при активности.

HRESULT GetAmbientShowGrabHandles(BOOL& bShowGrabHandles);

Параметры

bShowGrabHandles
Свойство DISPID_AМБIENT_SHOWGRABHANDLES.

Возвращаемое значение

Одно из стандартных значений HRESULT.

CComControlBase::GetAmbientShowHatching

Извлекает DISPID_AМБIENT_SHOWHATCHING, флаг, указывающий, позволяет ли контейнеру отображаться сам элемент управления с люком, когда пользовательский интерфейс элемента управления активен.

HRESULT GetAmbientShowHatching(BOOL& bShowHatching);

Параметры

bShowHatching
Свойство DISPID_AМБIENT_SHOWHATCHING.

Возвращаемое значение

Одно из стандартных значений HRESULT.

CComControlBase::GetAmbientSupportsMnemonics

Получает DISPID_AМБIENT_SUPPORTSMNEMONICS, флаг, указывающий, поддерживает ли контейнер mnemonics клавиатуру.

HRESULT GetAmbientSupportsMnemonics(BOOL& bSupportsMnemonics);

Параметры

bSupportsMnemonics
Свойство DISPID_AМБIENT_SUPPORTSMNEMONICS.

Возвращаемое значение

Одно из стандартных значений HRESULT.

CComControlBase::GetAmbientTextAlign

Извлекает DISPID_AМБIENT_TEXTALIGN, предпочтительное выравнивание текста контейнером: 0 для общего выравнивания (чисел справа, текста слева), 1 для выравнивания влево, 2 для выравнивания центра и 3 для выравнивания вправо.

HRESULT GetAmbientTextAlign(short& nTextAlign);

Параметры

nTextAlign
Свойство DISPID_AМБIENT_TEXTALIGN.

Возвращаемое значение

Одно из стандартных значений HRESULT.

CComControlBase::GetAmbientTopToBottom

Извлекает DISPID_AМБIENT_TOPTOBOTTOM, направление, в котором содержимое отображается контейнером.

HRESULT GetAmbientTopToBottom(BOOL& bTopToBottom);

Параметры

bTopToBottom
Свойство DISPID_AМБIENT_TOPTOBOTTOM. Установите значение TRUE, если текст отображается сверху вниз, значение FALSE, если оно отображается внизу вверху.

Возвращаемое значение

Возвращает S_OK при успешном выполнении или ошибку HRESULT при сбое.

CComControlBase::GetAmbientUIDead

Извлекает DISPID_AМБIENT_UIDEAD флаг, указывающий, требуется ли контейнеру реагировать на действия пользовательского интерфейса.

HRESULT GetAmbientUIDead(BOOL& bUIDead);

Параметры

bUIDead
Свойство DISPID_AМБIENT_UIDEAD.

Возвращаемое значение

Одно из стандартных значений HRESULT.

Замечания

Если значение TRUE, элемент управления не должен отвечать. Этот флаг применяется независимо от флага DISPID_AМБIENT_USERMODE. См. раздел CComControlBase::GetAmbientUserMode.

CComControlBase::GetAmbientUserMode

Извлекает DISPID_AМБIENT_USERMODE, флаг, указывающий, находится ли контейнер в режиме выполнения (TRUE) или в режиме разработки (FALSE).

HRESULT GetAmbientUserMode(BOOL& bUserMode);

Параметры

bUserMode
Свойство DISPID_AМБIENT_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.

Замечания

Перед активацией этот метод проверка, что элемент управления имеет клиентский сайт, проверка, сколько элементов управления отображается, и получает расположение элемента управления в родительском окне. После активации элемента управления этот метод активирует пользовательский интерфейс элемента управления и сообщает контейнеру, чтобы сделать элемент управления видимым.

Этот метод также извлекает IOleInPlaceSiteIOleInPlaceSiteExIOleInPlaceSiteWindowless указатель интерфейса для элемента управления и сохраняет его в элементе 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, то размер, переданный в SetExtentm_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.

См. также

Класс CComControl
Общие сведения о классе