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


Класс CComCompositeControl

Этот класс предоставляет методы, необходимые для реализации составного элемента управления.

Важное примечаниеВажно

Этот класс и его члены нельзя использовать в приложениях, выполняемых в этой среде выполнения Windows.

template <
class T 
>
class CComCompositeControl :
public CComControl< T, CAxDialogImpl< T > >

Параметры

  • T
    Класс, производный от CComObjectRoot или CComObjectRootEx, а также от других интерфейсов требуется поддержка для составного элемента управления.

Члены

z3e7bbb1.collapse_all(ru-ru,VS.110).gifОткрытые конструкторы

Имя

Описание

CComCompositeControl::CComCompositeControl

Конструктор.

CComCompositeControl::~CComCompositeControl

Деструктор.

z3e7bbb1.collapse_all(ru-ru,VS.110).gifОткрытые методы

Имя

Описание

CComCompositeControl::AdviseSinkMap

Вызовите этот метод, чтобы advise или unadvise все элементы управления, которые размещение составного элемента управления.

CComCompositeControl::CalcExtent

Вызовите этот метод, чтобы вычислить размер в единицах диалогового окна HIMETRIC ресурса, используемого для размещения составного элемента управления.

CComCompositeControl::Create

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

CComCompositeControl::CreateControlWindow

Вызывайте этот метод для создания окна элемента управления и advise любой элемент управления ведущего приложения.

CComCompositeControl::SetBackgroundColorFromAmbient

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

z3e7bbb1.collapse_all(ru-ru,VS.110).gifОткрытые члены данных

Имя

Описание

CComCompositeControl::m_hbrBackground

Кисть фона.

CComCompositeControl::m_hWndFocus

Дескриптор окна, которое в данный момент имеет фокус.

Заметки

Классы, производные от класса CComCompositeControl наследует функциональные возможности составного элемента управления ActiveX.Элементы управления ActiveX, производные от CComCompositeControl хозяйничаются стандартным диалоговым окном.Эти типы элементов управления называются составными элементами управления, так как они смогут размещения других элементов управления (элементов управления Windows собственного и управления ActiveX).

CComCompositeControl определяет ресурс диалогового окна для использования в создании составной элемент управления, выполняя поиск перечисляемый член данных в классе дочернего элемента.Элемент IDD этого класса дочернего элемента ему присваивается идентификатор ресурса ресурсов диалоговых окон, который будет использоваться в качестве окна элемента управления.Ниже приведен пример элемента данных, который класс, производный от CComCompositeControl должен содержать, чтобы определить ресурс диалогового окна для окна элемента управления:

enum { IDD = IDD_MYCOMPOSITE };
ПримечаниеПримечание

Составные элементы управления всегда оконного элемента управления, хотя они могут содержать безоконные элементы управления.

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

ПримечаниеПримечание

Сочетания клавиш для правильной работы с CComCompositeControl, должна быть загружена в таблицу сочетаний клавиш как создать элемент управления, передает дескриптор и число ускорителей обратно в IOleControlImpl::GetControlInfo, а затем удаляет таблицу, если элемент управления освободить.

Пример

// Example for overriding IOleControlImpl::GetControlInfo()
// This example uses the accelerator table from the project resources
// with the identifier IDR_ACCELTABLE
// Define GetControlInfo() in the header of your composite 
// control class as follows:

STDMETHOD(GetControlInfo)(CONTROLINFO* pCI)
{
    // Load the accelerator table from the resource
    pCI->hAccel = LoadAccelerators(_AtlBaseModule.GetResourceInstance(), 
       MAKEINTRESOURCE(IDR_ACCELTABLE));

    if (pCI->hAccel == NULL)
        return E_FAIL;

    // Get the number of accelerators in the table
    pCI->cAccel = (USHORT)CopyAcceleratorTable(pCI->hAccel, NULL, 0);
    // The following is optional if you want your control
    // to process the return and/or escape keys
    // pCI.dwFlags = CTRLINFO_EATS_RETURN | CTRLINFO_EATS_ESCAPE;
    pCI->dwFlags = 0;

    return S_OK;
}

Иерархия наследования

WinBase

CComControlBase

CComControl

CComCompositeControl

Требования

Header: atlctl.h

См. также

Ссылки

Класс CComControl

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

Принципы составного элемента управления

Другие ресурсы

Общие сведения о классе библиотеки ATL