다음을 통해 공유


COccManager Class

 

The new home for Visual Studio documentation is Visual Studio 2017 Documentation on docs.microsoft.com.

The latest version of this topic can be found at COccManager Class.

Manages various custom control sites; implemented by COleControlContainer and COleControlSite objects.

Syntax

class COccManager : public CNoTrackObject  

Members

Public Methods

Name Description
COccManager::CreateContainer Creates a COleContainer object.
COccManager::CreateDlgControls Creates ActiveX controls, hosted by the associated COleContainer object.
COccManager::CreateSite Creates a COleClientSite object.
COccManager::GetDefBtnCode Retrieves the code of the default button.
COccManager::IsDialogMessage Determines the target of a dialog message.
COccManager::IsLabelControl Determines if the specified control is a label control.
COccManager::IsMatchingMnemonic Determines if the current mnemonic matches the mnemonic of the specified control.
COccManager::OnEvent Attempts to handle the specified event.
COccManager::PostCreateDialog Frees resources allocated during dialog creation.
COccManager::PreCreateDialog Processes a dialog template for ActiveX controls.
COccManager::SetDefaultButton Toggles the default state of the specified control.
COccManager::SplitDialogTemplate Separates any existing ActiveX controls from common controls in the specified dialog template.

Remarks

The base class, CNoTrackObject, is an undocumented base class (located in AFXTLS.H). Designed for use by the MFC framework, classes derived from the CNoTrackObject class are exempt from memory leak detection. It is not recommended that you derive directly from CNoTrackObject.

Inheritance Hierarchy

CNoTrackObject

COccManager

Requirements

Header: afxocc.h

COccManager::CreateContainer

Called by the framework to create a control container.

virtual COleControlContainer* CreateContainer(CWnd* pWnd);

Parameters

pWnd
A pointer to the window object associated with the custom site container.

Return Value

A pointer to the newly created container; otherwise NULL.

Remarks

For more information on creating custom sites, see COleControlContainer::AttachControlSite.

COccManager::CreateDlgControls

Call this function to create ActiveX controls specified by the pOccDialogInfo parameter.

virtual BOOL CreateDlgControls(
    CWnd* pWndParent,  
    LPCTSTR lpszResourceName,  
    _AFX_OCC_DIALOG_INFO* pOccDialogInfo);

 
virtual BOOL CreateDlgControls(
    CWnd* pWndParent,  
    void* lpResource,  
    _AFX_OCC_DIALOG_INFO* pOccDialogInfo);

Parameters

pWndParent
A pointer to the parent of the dialog object.

lpszResourceName
The name of the resource being created.

pOccDialogInfo
A pointer to the dialog template used to create the dialog object.

lpResource
A pointer to a resource.

Return Value

Nonzero if the control was created successfully; otherwise zero.

COccManager::CreateSite

Called by the framework to create a control site, hosted by the container pointed to by pCtrlCont.

virtual COleControlSite* CreateSite(COleControlContainer* pCtrlCont);

Parameters

pCtrlCont
A pointer to the control container hosting the new control site.

Return Value

A pointer to the newly created control site.

Remarks

Override this function to create a custom control site, using your COleControlSite-derived class.

Each control container can host multiple sites. Create additional sites with multiple calls to CreateSite.

COccManager::GetDefBtnCode

Call this function to determine if the control is a default push button.

static DWORD AFX_CDECL GetDefBtnCode(CWnd* pWnd);

Parameters

pWnd
The window object containing the button control.

Return Value

One of the following values:

  • DLGC_DEFPUSHBUTTON Control is the default button in the dialog.

  • DLGC_UNDEFPUSHBUTTON Control is not the default button in the dialog.

  • 0 Control is not a button.

COccManager::IsDialogMessage

Called by the framework to determine whether a message is intended for the specified dialog box and, if it is, processes the message.

virtual BOOL IsDialogMessage(
    CWnd* pWndDlg,  
    LPMSG lpMsg);

Parameters

pWndDlg
A pointer to the intended target dialog of the message.

lpMsg
A pointer to an MSG structure that contains the message to be checked.

Return Value

Nonzero if the message is processed; otherwise zero.

Remarks

The default behavior of IsDialogMessage is to check for keyboard messages and convert them into selections for the corresponding dialog box. For example, the TAB key, when pressed, selects the next control or group of controls.

Override this function to provide custom behavior for messages sent to the specified dialog.

COccManager::IsLabelControl

Call this function to determine if the specified control is a label control.

static BOOL AFX_CDECL IsLabelControl(CWnd* pWnd);  
static BOOL AFX_CDECL IsLabelControl(COleControlSiteOrWnd* pWnd);
```  
  
### Parameters  
 `pWnd`  
 A pointer to the window containing the control.  
  
### Return Value  
 Nonzero if the control is a label; otherwise zero  
  
### Remarks  
 A label control is one that acts like a label for whatever control is next in the ordering.  
  
##  <a name="coccmanager__ismatchingmnemonic"></a>  COccManager::IsMatchingMnemonic  
 Call this function to determine if the current mnemonic matches that represented by the control.  
  

static BOOL AFX_CDECL IsMatchingMnemonic( CWnd* pWnd,
LPMSG lpMsg);

static BOOL AFX_CDECL IsMatchingMnemonic( COleControlSiteOrWnd* pWnd,
LPMSG lpMsg);

  
### Parameters  
 `pWnd`  
 A pointer to the window containing the control.  
  
 `lpMsg`  
 A pointer to the message containing the mnemonic to match.  
  
### Return Value  
 Nonzero if the mnemonic matches the control; otherwise zero  
  
### Remarks  
  
##  <a name="coccmanager__onevent"></a>  COccManager::OnEvent  
 Called by the framework to handle the specified event.  
  

virtual BOOL OnEvent( CCmdTarget* pCmdTarget,
UINT idCtrl,
AFX_EVENT* pEvent,
AFX_CMDHANDLERINFO* pHandlerInfo);

  
### Parameters  
 *pCmdTarget*  
 A pointer to the `CCmdTarget` object attempting to handle the event  
  
 `idCtrl`  
 The resource ID of the control.  
  
 `pEvent`  
 The event being handled.  
  
 `pHandlerInfo`  
 If not **NULL**, `OnEvent` fills in the **pTarget** and **pmf** members of the **AFX_CMDHANDLERINFO** structure instead of dispatching the command. Typically, this parameter should be **NULL**.  
  
### Return Value  
 Nonzero if the event was handled, otherwise zero.  
  
### Remarks  
 Override this function to customize the default event-handling process.  
  
##  <a name="coccmanager__precreatedialog"></a>  COccManager::PreCreateDialog  
 Called by the framework to process a dialog template for ActiveX controls before creating the actual dialog box.  
  

virtual const DLGTEMPLATE* PreCreateDialog( _AFX_OCC_DIALOG_INFO* pOccDialogInfo,
const DLGTEMPLATE* pOrigTemplate);

  
### Parameters  
 `pOccDialogInfo`  
 An **_AFX_OCC_DIALOG_INFO** structure containing information on the dialog template and any ActiveX controls hosted by the dialog.  
  
 *pOrigTemplate*  
 A pointer to the dialog template to be used in creating the dialog box.  
  
### Return Value  
 A pointer to a dialog template structure used to create the dialog box.  
  
### Remarks  
 The default behavior makes a call to `SplitDialogTemplate`, determining if there are any ActiveX controls present and then returns the resultant dialog template.  
  
 Override this function to customize the process of creating a dialog box hosting ActiveX controls.  
  
##  <a name="coccmanager__postcreatedialog"></a>  COccManager::PostCreateDialog  
 Called by the framework to free memory allocated for the dialog template.  
  

virtual void PostCreateDialog(_AFX_OCC_DIALOG_INFO* pOccDialogInfo);

  
### Parameters  
 `pOccDialogInfo`  
 An **_AFX_OCC_DIALOG_INFO** structure containing information on the dialog template and any ActiveX controls hosted by the dialog.  
  
### Remarks  
 This memory was allocated by a call to `SplitDialogTemplate`, and was used for any hosted ActiveX controls in the dialog box.  
  
 Override this function to customize the process of cleaning up any resources used by the dialog box object.  
  
##  <a name="coccmanager__setdefaultbutton"></a>  COccManager::SetDefaultButton  
 Call this function to set the control as the default button.  
  

static void AFX_CDECL SetDefaultButton( CWnd* pWnd,
BOOL bDefault);

  
### Parameters  
 `pWnd`  
 A pointer to the window containing the control.  
  
 `bDefault`  
 Nonzero if the control should become the default button; otherwise zero.  
  
### Return Value  
 Nonzero if successful; otherwise zero.  
  
### Remarks  
  
> [!NOTE]
>  The control must have the **OLEMISC_ACTSLIKEBUTTON** status bit set. For more information on **OLEMISC** flags, see the [OLEMISC](https://msdn.microsoft.com/library/windows/desktop/ms678497) topic in the [!INCLUDE[winSDK](../Token/winSDK_md.md)].  
  
##  <a name="coccmanager__splitdialogtemplate"></a>  COccManager::SplitDialogTemplate  
 Called by the framework to split the ActiveX controls from common dialog controls.  
  

virtual DLGTEMPLATE* SplitDialogTemplate( const DLGTEMPLATE* pTemplate,
DLGITEMTEMPLATE** ppOleDlgItems);

  
### Parameters  
 `pTemplate`  
 A pointer to the dialog template to be examined.  
  
 `ppOleDlgItems`  
 A list of pointers to dialog box items that are ActiveX controls.  
  
### Return Value  
 A pointer to a dialog template structure containing only non-ActiveX controls. If no ActiveX controls are present, **NULL** is returned.  
  
### Remarks  
 If any ActiveX controls are found, the template is analyzed and a new template, containing only non-ActiveX controls, is created. Any ActiveX controls found during this process are added to `ppOleDlgItems`.  
  
 If there are no ActiveX controls in the template, **NULL** is returned *.*  
  
> [!NOTE]
>  Memory allocated for the new template is freed in the `PostCreateDialog` function.  
  
 Override this function to customize this process.  
  
## See Also  
 [Hierarchy Chart](../Topic/Hierarchy%20Chart.md)   
 [COleControlSite Class](../Topic/COleControlSite%20Class.md)   
 [COleControlContainer Class](../Topic/COleControlContainer%20Class.md)