Класс 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.
Иерархия наследования
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