共用方式為


COccManager 類別

管理各種自訂控制項網站;由 COleControlContainerCOleControlSite 物件實作。

語法

class COccManager : public CNoTrackObject

成員

公用方法

名稱 描述
COccManager::CreateContainer 建立 COleContainer 物件。
COccManager::CreateDlgControls 建立由相關聯 COleContainer 對象裝載的 ActiveX 控制件。
COccManager::CreateSite 建立 COleClientSite 物件。
COccManager::GetDefBtnCode 擷取預設按鈕的程序代碼。
COccManager::IsDialogMessage 決定對話訊息的目標。
COccManager::IsLabelControl 判斷指定的控件是否為標籤。
COccManager::IsMatchingMnemonic 判斷目前的助記鍵是否符合指定控制件的助記鍵。
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

呼叫此函式以建立 pOccDialogInfo 參數指定的 ActiveX 控制件。

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

呼叫此函式,以判斷目前的助記鍵是否符合 控件所代表的。

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

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

參數

pWnd
包含控件之視窗的指標。

lpMsg
訊息的指標,其中包含要比對的助記鍵。

傳回值

如果助記鍵符合控件,則為非零;否則為零

備註

COccManager::OnEvent

由架構呼叫以處理指定的事件。

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

參數

pCmdTarget
嘗試處理事件的 物件的指標CCmdTarget

idCtrl
控件的資源標識碼。

pEvent
正在處理的事件。

pHandlerInfo
如果不是 NULL,請 OnEvent 填入 pTarget 結構的 和 pmf 成員 AFX_CMDHANDLERINFO ,而不是分派命令。 一般而言,此參數應該是 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 旗標的詳細資訊,請參閱 Windows SDK 中的 OLEMISC 主題。

COccManager::SplitDialogTemplate

由架構呼叫,以將 ActiveX 控制件從通用對話框控制元件分割。

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

參數

pTemplate
要檢查之對話框範本的指標。

ppOleDlgItems
ActiveX 控制件之對話框專案的指標清單。

傳回值

對話框範本結構的指標,只包含非 ActiveX 控件。 如果沒有 ActiveX 控制件存在,則會傳回 NULL。

備註

如果找到任何 ActiveX 控制件,則會分析範本,並建立只包含非 ActiveX 控制件的新範本。 此程式期間找到的任何 ActiveX 控制項會新增至 ppOleDlgItems

如果範本中沒有 ActiveX 控制件,則會傳 回 NULL。

注意

為新範本配置的記憶體會在函 PostCreateDialog 式中釋出。

覆寫此函式以自定義此程式。

另請參閱

階層架構圖表
COleControlSite 類別
COleControlContainer 類別