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


Класс COleControlContainer

Играет роль контейнера для элементов управления ActiveX.

Синтаксис

class COleControlContainer : public CCmdTarget

Участники

Открытые конструкторы

Имя Описание
COleControlContainer::COleControlContainer Формирует объект COleControlContainer.

Открытые методы

Имя Описание
COleControlContainer::AttachControlSite Создает сайт элемента управления, размещенный контейнером.
COleControlContainer::BroadcastAmbientPropertyChange Сообщает всем размещенным элементам управления, что свойство окружения изменилось.
COleControlContainer::CheckDlgButton Изменяет указанный элемент управления кнопкой.
COleControlContainer::CheckRadioButton Выбирает указанную переключатель группы.
COleControlContainer::CreateControl Создает размещенный элемент activeX.
COleControlContainer::CreateOleFont Создает шрифт OLE.
COleControlContainer::FindItem Возвращает пользовательский сайт указанного элемента управления.
COleControlContainer::FreezeAllEvents Определяет, принимает ли сайт элемента управления события.
COleControlContainer::GetAmbientProp Извлекает указанное свойство окружения.
COleControlContainer::GetDlgItem Извлекает указанный элемент управления диалоговым окном.
COleControlContainer::GetDlgItemInt Извлекает значение указанного элемента управления диалоговым окном.
COleControlContainer::GetDlgItemText Извлекает заголовок указанного элемента управления диалоговым окном.
COleControlContainer::HandleSetFocus Определяет, обрабатывает ли контейнер WM_SETFOCUS сообщения.
COleControlContainer::HandleWindowlessMessage Обрабатывает сообщения, отправленные в элемент управления без окон.
COleControlContainer::IsDlgButtonChecked Определяет состояние указанной кнопки.
COleControlContainer::OnPaint Вызывается для перезапаковки части контейнера.
COleControlContainer::OnUIActivate Вызывается, когда элемент управления будет активирован на месте.
COleControlContainer::OnUIDeactivate Вызывается, когда элемент управления будет деактивирован.
COleControlContainer::ScrollChildren Вызывается платформой при получении сообщений прокрутки из дочернего окна.
COleControlContainer::SendDlgItemMessage Отправляет сообщение указанному элементу управления.
COleControlContainer::SetDlgItemInt Задает значение указанного элемента управления.
COleControlContainer::SetDlgItemText Задает текст указанного элемента управления.

Открытые члены данных

Имя Описание
COleControlContainer::m_crBack Цвет фона контейнера.
COleControlContainer::m_crFore Цвет переднего плана контейнера.
COleControlContainer::m_listSitesOrWnds Список поддерживаемых сайтов элементов управления.
COleControlContainer::m_nWindowlessControls Количество размещенных элементов управления без окон.
COleControlContainer::m_pOleFont Указатель на шрифт OLE пользовательского сайта элемента управления.
COleControlContainer::m_pSiteCapture Указатель на сайт управления записью.
COleControlContainer::m_pSiteFocus Указатель на элемент управления, который в настоящее время имеет фокус ввода.
COleControlContainer::m_pSiteUIActive Указатель на элемент управления, который в настоящее время активируется на месте.
COleControlContainer::m_pWnd Указатель на окно, реализующего контейнер элементов управления.
COleControlContainer::m_siteMap Карта сайта.

Замечания

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

Как правило, этот класс используется в сочетании с COccManager COleControlSite контейнером пользовательского элемента управления ActiveX и пользовательскими сайтами для одного или нескольких элементов ActiveX.

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

CObject

CCmdTarget

COleControlContainer

Требования

Заголовок: afxocc.h

COleControlContainer::AttachControlSite

Вызывается платформой для создания и присоединения сайта элемента управления.

virtual void AttachControlSite(
    CWnd* pWnd,
    UINT nIDC = 0);

void AttachControlSite(
    CWnd* pWnd,
    UINT nIDC = 0);

Параметры

pWnd
Указатель на объект CWnd.

nIDC
Идентификатор присоединенного элемента управления.

Замечания

Переопределите эту функцию, если вы хотите настроить этот процесс.

Примечание.

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

COleControlContainer::BroadcastAmbientPropertyChange

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

virtual void BroadcastAmbientPropertyChange(DISPID dispid);

Параметры

dispid
Идентификатор диспетчера изменяемого свойства окружения.

Замечания

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

COleControlContainer::CheckDlgButton

Изменяет текущее состояние кнопки.

virtual void CheckDlgButton(
    int nIDButton,
    UINT nCheck);

Параметры

nIDButton
Идентификатор кнопки, который необходимо изменить.

nCheck
Указывает состояние кнопки. Может применяться один из перечисленных ниже типов.

  • BST_CHECKED Задает состояние кнопки для проверки.

  • BST_INDETERMINATE Задает состояние кнопки серым, указывающее неопределенное состояние. Используйте это значение, только если кнопка имеет стиль BS_3STATE или BS_AUTO3STATE.

  • BST_UNCHECKED Задает состояние кнопки для очистки.

COleControlContainer::CheckRadioButton

Выбирает указанную переключатель в группе и очищает оставшиеся кнопки в группе.

virtual void CheckRadioButton(
    int nIDFirstButton,
    int nIDLastButton,
    int nIDCheckButton);

Параметры

nIDFirstButton
Указывает идентификатор первой переключателя в группе.

nIDLastButton
Указывает идентификатор последней переключателя в группе.

nIDCheckButton
Указывает идентификатор проверяемой переключателя.

COleControlContainer::COleControlContainer

Формирует объект COleControlContainer.

explicit COleControlContainer(CWnd* pWnd);

Параметры

pWnd
Указатель на родительское окно контейнера элемента управления.

Замечания

После успешного создания объекта добавьте пользовательский сайт управления с вызовом AttachControlSite.

COleControlContainer::CreateControl

Создает элемент activeX, размещенный указанным COleControlSite объектом.

BOOL CreateControl(
    CWnd* pWndCtrl,
    REFCLSID clsid,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    const RECT& rect,
    UINT nID,
    CFile* pPersist =NULL,
    BOOL bStorage =FALSE,
    BSTR bstrLicKey =NULL,
    COleControlSite** ppNewSite =NULL);

BOOL CreateControl(
    CWnd* pWndCtrl,
    REFCLSID clsid,
    LPCTSTR lpszWindowName,
    DWORD dwStyle,
    const POINT* ppt,
    const SIZE* psize,
    UINT nID,
    CFile* pPersist =NULL,
    BOOL bStorage =FALSE,
    BSTR bstrLicKey =NULL,
    COleControlSite** ppNewSite =NULL);

Параметры

pWndCtrl
Указатель на объект окна, представляющий элемент управления.

clsid
Уникальный идентификатор класса элемента управления.

lpszWindowName
Указатель на текст, отображаемый в элементе управления. Задает значение заголовка элемента управления или свойства Text (если таковой имеется). Если значение NULL, свойство caption или Text элемента управления не изменяется.

dwStyle
Стили Windows. Доступные стили перечислены в разделе "Примечания ".

rect
Указывает размер и положение элемента управления. Это может быть CRect объект или RECT структура.

nID
Указывает идентификатор дочернего окна элемента управления.

pPersist
Указатель на CFile постоянное состояние элемента управления. Значение по умолчанию — NULL, указывающее, что элемент управления инициализирует себя без восстановления состояния из любого постоянного хранилища. В противном случае значение NULL должно быть указателем на CFileпроизводный объект, содержащий постоянные данные элемента управления, в виде потока или хранилища. Эти данные могли быть сохранены в предыдущей активации клиента. Он CFile может содержать другие данные, но должен иметь указатель записи для чтения и записи в первый байт постоянных данных во время вызова CreateControl.

bStorage
Указывает, должны ли данные в pPersist интерпретироваться как IStorage или IStream данные. Если данные в pPersist — это хранилище, bStorage должен иметь значение TRUE. Если данные в pPersist являются потоком, bStorage должен иметь значение FALSE. Значение по умолчанию — FALSE.

bstrLicKey
Необязательные данные ключа лицензии. Эти данные необходимы только для создания элементов управления, требующих ключа лицензии во время выполнения. Если элемент управления поддерживает лицензирование, необходимо предоставить ключ лицензии для успешного создания элемента управления. Значение по умолчанию — NULL.

ppNewSite
Указатель на существующий сайт управления, в котором будет размещаться созданный элемент управления. Значение по умолчанию равно NULL, указывающее, что новый сайт управления будет автоматически создан и присоединен к новому элементу управления.

ppt
Указатель на POINT структуру, содержащую левый верхний угол элемента управления. Размер элемента управления определяется значением psize. Значения ppt и psize — это необязательный метод указания размера и положения элемента управления.

psize
Указатель на SIZE структуру, содержащую размер элемента управления. Верхний левый угол определяется значением ppt. Значения ppt и psize — это необязательный метод указания размера и положения элемента управления.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

Замечания

Поддерживается только подмножество флагов Windows dwStyle:CreateControl

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

  • WS_DISABLED Создает окно, которое изначально отключено. Отключенное окно не может получать входные данные от пользователя. Можно задать, если элемент управления имеет свойство Enabled.

  • WS_BORDER Создает окно с тонкой линией границы. Можно задать, если элемент управления имеет свойство BorderStyle.

  • WS_GROUP Указывает первый элемент управления группы элементов управления. Пользователь может изменить фокус клавиатуры с одного элемента управления в группе на следующий с помощью клавиш направления. Все элементы управления, определенные с помощью стиля WS_GROUP после того, как первый элемент управления принадлежит одной группе. Следующий элемент управления со стилем WS_GROUP заканчивается группой и запускает следующую группу.

  • WS_TABSTOP Указывает элемент управления, который может получить фокус клавиатуры, когда пользователь нажимает клавишу TAB. Нажатие клавиши TAB изменяет фокус клавиатуры на следующий элемент управления стилем WS_TABSTOP.

Используйте вторую перегрузку для создания элементов управления размером по умолчанию.

COleControlContainer::CreateOleFont

Создает шрифт OLE.

void CreateOleFont(CFont* pFont);

Параметры

pFont
Указатель на шрифт, используемый контейнером элементов управления.

COleControlContainer::FindItem

Находит пользовательский сайт, на котором размещен указанный элемент.

virtual COleControlSite* FindItem(UINT nID) const;

Параметры

nID
Идентификатор найденного элемента.

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

Указатель на пользовательский сайт указанного элемента.

COleControlContainer::FreezeAllEvents

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

void FreezeAllEvents(BOOL bFreeze);

Параметры

bFreeze
Ненулевое значение, если события будут обработаны; в противном случае — 0.

Замечания

Примечание.

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

COleControlContainer::GetAmbientProp

Извлекает значение указанного внешнего свойства.

virtual BOOL GetAmbientProp(
    COleControlSite* pSite,
    DISPID dispid,
    VARIANT* pvarResult);

Параметры

pSite
Указатель на сайт элемента управления, из которого извлекается внешнее свойство.

dispid
Идентификатор диспетчера требуемого внешнего свойства.

pVarResult
Указатель на значение внешнего свойства.

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

Имеет ненулевое значение в случае успешного выполнения, иначе — 0.

COleControlContainer::GetDlgItem

Извлекает указатель на указанное окно элемента управления или дочернего окна в диалоговом окне или другом окне.

virtual CWnd* GetDlgItem(int nID) const;

virtual void GetDlgItem(
    int nID,
    HWND* phWnd) const;

Параметры

nID
Идентификатор извлекаемого элемента диалогового окна.

phWnd
Указатель на дескриптор объекта окна указанного элемента диалогового окна.

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

Указатель на окно диалогового окна.

COleControlContainer::GetDlgItemInt

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

virtual UINT GetDlgItemInt(
    int nID,
    BOOL* lpTrans,
    BOOL bSigned) const;

Параметры

nID
Идентификатор элемента управления.

lpTrans
Указатель на логическую переменную, которая получает значение успешности или сбоя функции (TRUE указывает на успешность, FALSE указывает на сбой).

bSigned
Указывает, должна ли функция проверять текст для знака минуса в начале и возвращать целочисленное значение со знаком, если он находит его. Если параметр bSigned имеет значение TRUE, указывая, что полученное значение является целым числом со знаком, приведите возвращаемое значение к типуint. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

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

При успешном выполнении переменная, на которую указывает lpTrans , имеет значение TRUE, а возвращаемое значение — преобразованное значение текста элемента управления.

Если функция завершается ошибкой, переменная, на которую указывает lpTrans , имеет значение FALSE, а возвращаемое значение равно нулю. Обратите внимание, что, так как ноль является возможным преобразованным значением, возвращаемое значение нуля не само по себе указывает на сбой.

Если значение lpTrans равно NULL, функция не возвращает никаких сведений об успешном выполнении или сбое.

Замечания

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

Эта функция возвращает ноль, если преобразованное значение больше INT_MAX (для подписанных чисел) или UINT_MAX (для неподписанных чисел).

COleControlContainer::GetDlgItemText

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

virtual int GetDlgItemText(
    int nID,
    LPTSTR lpStr,
    int nMaxCount) const;

Параметры

nID
Идентификатор элемента управления.

lpStr
Указатель на текст элемента управления.

nMaxCount
Указывает максимальную длину в символах строки, которую нужно скопировать в буфер, на который указывает lpStr. Если длина строки превышает предел, строка усечена.

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

Если функция выполнена успешно, возвращаемое значение указывает количество символов, скопированных в буфер, не включая завершающийся символ NULL.

Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.

COleControlContainer::HandleSetFocus

Определяет, обрабатывает ли контейнер WM_SETFOCUS сообщения.

virtual BOOL HandleSetFocus();

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

Ненулевое значение, если контейнер обрабатывает сообщения WM_SETFOCUS; в противном случае ноль.

COleControlContainer::HandleWindowlessMessage

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

virtual BOOL HandleWindowlessMessage(
    UINT message,
    WPARAM wParam,
    LPARAM lParam,
    LRESULT* plResult);

Параметры

message
Идентификатор сообщения окна, предоставленного Windows.

wParam
Параметр сообщения; предоставляется Windows. Указывает дополнительные сведения, относящиеся к сообщению. Содержимое этого параметра зависит от значения параметра сообщения .

lParam
Параметр сообщения; предоставляется Windows. Указывает дополнительные сведения, относящиеся к сообщению. Содержимое этого параметра зависит от значения параметра сообщения .

plResult
Код результата Windows. Указывает результат обработки сообщений и зависит от отправленного сообщения.

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

Ненулевое значение в случае успеха, иначе — 0.

Замечания

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

COleControlContainer::IsDlgButtonChecked

Определяет состояние указанной кнопки.

virtual UINT IsDlgButtonChecked(int nIDButton) const;

Параметры

nIDButton
Идентификатор элемента управления кнопкой.

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

Возвращаемое значение из кнопки, созданной с помощью стиля BS_AUTOCHECKBOX, BS_AUTORADIOBUTTON, BS_AUTO3STATE, BS_CHECKBOX, BS_RADIOBUTTON или стиля BS_3STATE. Может применяться один из перечисленных ниже типов.

  • установлен флажок BST_CHECKED Кнопка.

  • BST_INDETERMINATE Кнопка серая, указывающая неопределенное состояние (применяется только в том случае, если кнопка имеет стиль BS_3STATE или BS_AUTO3STATE).

  • кнопка BST_UNCHECKED очищается.

Замечания

Если кнопка является элементом управления с тремя состояниями, функция-член определяет, является ли она неактивной, проверенной или ни той, ни другой.

COleControlContainer::m_crBack

Цвет фона контейнера.

COLORREF m_crBack;

COleControlContainer::m_crFore

Цвет переднего плана контейнера.

COLORREF m_crFore;

COleControlContainer::m_listSitesOrWnds

Список сайтов элементов управления, размещенных контейнером.

CTypedPtrList<CPtrList, COleControlSiteOrWnd*> m_listSitesOrWnds;

COleControlContainer::m_nWindowlessControls

Количество элементов управления без окна, размещенных контейнером элементов управления.

int m_nWindowlessControls;

COleControlContainer::m_pOleFont

Указатель на шрифт OLE пользовательского сайта элемента управления.

LPFONTDISP m_pOleFont;

COleControlContainer::m_pSiteCapture

Указатель на сайт управления записью.

COleControlSite* m_pSiteCapture;

COleControlContainer::m_pSiteFocus

Указатель на сайт управления, который в настоящее время имеет фокус ввода.

COleControlSite* m_pSiteFocus;

COleControlContainer::m_pSiteUIActive

Указатель на сайт управления, активируемый на месте.

COleControlSite* m_pSiteUIActive;

COleControlContainer::m_pWnd

Указатель на объект окна, связанный с контейнером.

CWnd* m_pWnd;

COleControlContainer::m_siteMap

Карта сайта.

CMapPtrToPtr m_siteMap;

COleControlContainer::OnPaint

Вызывается платформой для обработки запросов WM_PAINT.

virtual BOOL OnPaint(CDC* pDC);

Параметры

pDC
Указатель на контекст устройства, используемый контейнером.

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

Ненулевое значение, если сообщение было обработано; в противном случае ноль.

Замечания

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

COleControlContainer::OnUIActivate

Вызывается платформой, когда сайт управления, на который указывает pSite, будет активирован на месте.

virtual void OnUIActivate(COleControlSite* pSite);

Параметры

pSite
Указатель на сайт управления, который будет активирован на месте.

Замечания

Активация на месте означает, что главное меню контейнера заменено составным меню на месте.

COleControlContainer::OnUIDeactivate

Вызывается платформой, когда сайт управления, на который указывает pSite, будет деактивирован.

virtual void OnUIDeactivate(COleControlSite* pSite);

Параметры

pSite
Указатель на сайт управления, который будет деактивирован.

Замечания

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

COleControlContainer::ScrollChildren

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

virtual void ScrollChildren(
    int dx,
    int dy);

Параметры

dx
Объем в пикселях прокрутки вдоль оси x.

dy
Объем в пикселях прокрутки вдоль оси y.

COleControlContainer::SendDlgItemMessage

Отправляет сообщение указанному элементу управления.

virtual LRESULT SendDlgItemMessage(
    int nID,
    UINT message,
    WPARAM wParam,
    LPARAM lParam);

Параметры

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

message
Указывает сообщение, которое нужно отправить.

wParam
Указывает дополнительные сведения, относящиеся к сообщению.

lParam
Указывает дополнительные сведения, относящиеся к сообщению.

COleControlContainer::SetDlgItemInt

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

virtual void SetDlgItemInt(
    int nID,
    UINT nValue,
    BOOL bSigned);

Параметры

nID
Идентификатор элемента управления.

nValue
Отображаемое целочисленное значение.

bSigned
Указывает, подписан или не подписан параметр nValue . Если этот параметр имеет значение TRUE, nValue подписывается. Если этот параметр имеет значение TRUE и nValue меньше нуля, знак минуса помещается перед первой цифрой в строке. Если этот параметр имеет значение FALSE, nValue не назначен.

COleControlContainer::SetDlgItemText

Задает текст указанного элемента управления, используя текст, содержащийся в lpszString.

virtual void SetDlgItemText(
    int nID,
    LPCTSTR lpszString);

Параметры

nID
Идентификатор элемента управления.

lpszString
Указатель на текст элемента управления.

См. также

Класс CCmdTarget
Диаграмма иерархии
Класс COleControlSite
Класс COccManager