Класс COccManager
Управляет разными сайтами пользовательского элемента управления, реализованного объектами COleControlContainer
и COleControlSite
.
Синтаксис
class COccManager : public CNoTrackObject
Участники
Открытые методы
Имя | Описание |
---|---|
COccManager::CreateContainer | Создает объект COleContainer . |
COccManager::CreateDlgControls | Создает элементы ActiveX, размещенные связанным COleContainer объектом. |
COccManager::CreateSite | Создает объект COleClientSite . |
COccManager::GetDefBtnCode | Извлекает код кнопки по умолчанию. |
COccManager::IsDialogMessage | Определяет целевой объект диалогового окна. |
COccManager::IsLabelControl | Определяет, является ли указанный элемент управления элементом управления меткой. |
COccManager::IsMatchingMnemonic | Определяет, соответствует ли текущий mnemonic mnemonic указанного элемента управления. |
COccManager::OnEvent | Пытается обработать указанное событие. |
COccManager::P ostCreateDialog | Освобождает ресурсы, выделенные во время создания диалогового окна. |
COccManager::P reCreateDialog | Обрабатывает шаблон диалогового окна для элементов ActiveX. |
COccManager::SetDefaultButton | Переключает состояние по умолчанию указанного элемента управления. |
COccManager::SplitDialogTemplate | Отделяет все существующие элементы ActiveX от общих элементов управления в указанном шаблоне диалогового окна. |
Замечания
Базовый класс — это незадокументированные базовый класс CNoTrackObject
(расположенный в AFXTLS). H). Предназначенные для использования платформой MFC классы, производные от CNoTrackObject
класса, освобождаются от обнаружения утечки памяти. Не рекомендуется напрямую получать производные от CNoTrackObject
.
Иерархия наследования
CNoTrackObject
COccManager
Требования
Заголовок: afxocc.h
COccManager::CreateContainer
Вызывается платформой для создания контейнера элементов управления.
virtual COleControlContainer* CreateContainer(CWnd* pWnd);
Параметры
pWnd
Указатель на объект окна, связанный с пользовательским контейнером сайта.
Возвращаемое значение
Указатель на только что созданный контейнер; в противном случае ЗНАЧЕНИЕ NULL.
Замечания
Дополнительные сведения о создании пользовательских сайтов см. в разделе COleControlContainer::AttachControlSite.
COccManager::CreateDlgControls
Вызовите эту функцию для создания элементов ActiveX, указанных параметром pOccDialogInfo .
virtual BOOL CreateDlgControls(
CWnd* pWndParent,
LPCTSTR lpszResourceName,
_AFX_OCC_DIALOG_INFO* pOccDialogInfo);
virtual BOOL CreateDlgControls(
CWnd* pWndParent,
void* lpResource,
_AFX_OCC_DIALOG_INFO* pOccDialogInfo);
Параметры
pWndParent
Указатель на родительский объект диалогового окна.
lpszResourceName
Имя создаваемого ресурса.
pOccDialogInfo
Указатель на шаблон диалогового окна, используемый для создания объекта диалогового окна.
lpResource
Указатель на ресурс.
Возвращаемое значение
Ненулевое значение, если элемент управления был создан успешно; в противном случае ноль.
COccManager::CreateSite
Вызывается платформой для создания сайта управления, размещенного контейнером, на который указывает pCtrlCont.
virtual COleControlSite* CreateSite(COleControlContainer* pCtrlCont);
Параметры
pCtrlCont
Указатель на контейнер элемента управления, на котором размещен новый сайт управления.
Возвращаемое значение
Указатель на только что созданный сайт управления.
Замечания
Переопределите эту функцию, чтобы создать пользовательский сайт управления, используя класс, производный от COleControlSite.
Каждый контейнер управления может размещать несколько сайтов. Создание дополнительных сайтов с несколькими вызовами CreateSite
.
COccManager::GetDefBtnCode
Вызовите эту функцию, чтобы определить, является ли элемент управления кнопкой нажатия по умолчанию.
static DWORD AFX_CDECL GetDefBtnCode(CWnd* pWnd);
Параметры
pWnd
Объект окна, содержащий элемент управления кнопкой.
Возвращаемое значение
Одно из следующих значений:
DLGC_DEFPUSHBUTTON Элемент управления — это кнопка по умолчанию в диалоговом окне.
DLGC_UNDEFPUSHBUTTON элемент управления не является кнопкой по умолчанию в диалоговом окне.
Элемент управления 0 не является кнопкой.
COccManager::IsDialogMessage
Вызывается платформой, чтобы определить, предназначено ли сообщение для указанного диалогового окна и, если это так, обрабатывает сообщение.
virtual BOOL IsDialogMessage(
CWnd* pWndDlg,
LPMSG lpMsg);
Параметры
pWndDlg
Указатель на целевой диалог сообщения.
lpMsg
Указатель на MSG
структуру, содержащую проверяемое сообщение.
Возвращаемое значение
Ненулевое значение, если сообщение обрабатывается; в противном случае ноль.
Замечания
Поведение IsDialogMessage
по умолчанию заключается в том, чтобы проверить наличие сообщений клавиатуры и преобразовать их в выбранные элементы для соответствующего диалогового окна. Например, при нажатии клавиши TAB выбирает следующий элемент управления или группу элементов управления.
Переопределите эту функцию, чтобы обеспечить настраиваемое поведение сообщений, отправленных в указанное диалоговое окно.
COccManager::IsLabelControl
Вызовите эту функцию, чтобы определить, является ли указанный элемент управления меткой.
static BOOL AFX_CDECL IsLabelControl(CWnd* pWnd);
static BOOL AFX_CDECL IsLabelControl(COleControlSiteOrWnd* pWnd);
Параметры
pWnd
Указатель на окно, содержащее элемент управления.
Возвращаемое значение
Ненулевое значение, если элемент управления является меткой; в противном случае ноль
Замечания
Элемент управления метками — это элемент управления, который действует как метка для любого элемента управления, следующего в порядке.
COccManager::IsMatchingMnemonic
Вызовите эту функцию, чтобы определить, совпадают ли текущие mnemonic совпадения, представленные элементом управления.
static BOOL AFX_CDECL IsMatchingMnemonic(
CWnd* pWnd,
LPMSG lpMsg);
static BOOL AFX_CDECL IsMatchingMnemonic(
COleControlSiteOrWnd* pWnd,
LPMSG lpMsg);
Параметры
pWnd
Указатель на окно, содержащее элемент управления.
lpMsg
Указатель на сообщение, содержащее mnemonic для сопоставления.
Возвращаемое значение
Ненулевое значение, если mnemonic соответствует элементу управления; в противном случае ноль
Замечания
COccManager::OnEvent
Вызывается платформой для обработки указанного события.
virtual BOOL OnEvent(
CCmdTarget* pCmdTarget,
UINT idCtrl,
AFX_EVENT* pEvent,
AFX_CMDHANDLERINFO* pHandlerInfo);
Параметры
pCmdTarget
Указатель на CCmdTarget
объект, пытающийся обработать событие
idCtrl
Идентификатор ресурса элемента управления.
pEvent
Обрабатываемое событие.
pHandlerInfo
Если значение NULL не равно NULL, OnEvent
заполняется и pmf
члены AFX_CMDHANDLERINFO
pTarget
структуры вместо отправки команды. Как правило, этот параметр должен иметь значение NULL.
Возвращаемое значение
Ненулевое значение, если событие было обработано, в противном случае — ноль.
Замечания
Переопределите эту функцию, чтобы настроить процесс обработки событий по умолчанию.
COccManager::P reCreateDialog
Вызывается платформой для обработки шаблона диалогового окна для элементов ActiveX перед созданием фактического диалогового окна.
virtual const DLGTEMPLATE* PreCreateDialog(
_AFX_OCC_DIALOG_INFO* pOccDialogInfo,
const DLGTEMPLATE* pOrigTemplate);
Параметры
pOccDialogInfo
Структура _AFX_OCC_DIALOG_INFO
, содержащая сведения о шаблоне диалога и всех элементах ActiveX, размещенных в диалоговом окне.
pOrigTemplate
Указатель на шаблон диалогового окна, который будет использоваться при создании диалогового окна.
Возвращаемое значение
Указатель на структуру шаблона диалогового окна, используемую для создания диалогового окна.
Замечания
Поведение по умолчанию вызывает вызов SplitDialogTemplate
, определяющий наличие элементов ActiveX, а затем возвращает шаблон результирующих диалоговых окон.
Переопределите эту функцию, чтобы настроить процесс создания диалогового окна с элементами ActiveX.
COccManager::P ostCreateDialog
Вызывается платформой для освобождения памяти, выделенной для шаблона диалога.
virtual void PostCreateDialog(_AFX_OCC_DIALOG_INFO* pOccDialogInfo);
Параметры
pOccDialogInfo
Структура _AFX_OCC_DIALOG_INFO
, содержащая сведения о шаблоне диалога и всех элементах ActiveX, размещенных в диалоговом окне.
Замечания
Эта память была выделена вызовом SplitDialogTemplate
и использовалась для всех размещенных элементов ActiveX в диалоговом окне.
Переопределите эту функцию, чтобы настроить процесс очистки всех ресурсов, используемых объектом диалогового окна.
COccManager::SetDefaultButton
Вызовите эту функцию, чтобы задать элемент управления в качестве кнопки по умолчанию.
static void AFX_CDECL SetDefaultButton(
CWnd* pWnd,
BOOL bDefault);
Параметры
pWnd
Указатель на окно, содержащее элемент управления.
bDefault
Ненулевое значение, если элемент управления должен стать кнопкой по умолчанию; в противном случае ноль.
Возвращаемое значение
Ненулевое значение в случае успеха, иначе — 0.
Замечания
Примечание.
Элемент управления должен иметь бит состояния OLEMISC_ACTSLIKEBUTTON. Дополнительные сведения о флагах OLEMISC см . в разделе OLEMISC в пакете SDK для Windows.
COccManager::SplitDialogTemplate
Вызывается платформой для разделения элементов ActiveX из общих диалоговых элементов управления.
virtual DLGTEMPLATE* SplitDialogTemplate(
const DLGTEMPLATE* pTemplate,
DLGITEMTEMPLATE** ppOleDlgItems);
Параметры
pTemplate
Указатель на шаблон диалогового окна для проверки.
ppOleDlgItems
Список указателей на элементы диалогового окна, которые являются элементами ActiveX.
Возвращаемое значение
Указатель на структуру шаблона диалогового окна, содержащую только элементы управления, отличные от ActiveX. Если элементы ActiveX отсутствуют, возвращается значение NULL.
Замечания
При обнаружении элементов ActiveX шаблон анализируется и создается новый шаблон, содержащий только элементы activeX, не являющиеся activeX. Все элементы ActiveX, найденные во время этого процесса, добавляются в ppOleDlgItems.
Если в шаблоне нет элементов ActiveX, возвращается значение NULL.
Примечание.
Память, выделенная для нового шаблона, освобождается в PostCreateDialog
функции.
Переопределите эту функцию, чтобы настроить этот процесс.
См. также
Диаграмма иерархии
Класс COleControlSite
Класс COleControlContainer