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


Класс 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