COccManager 類別
管理各種自訂控制項網站;由 COleControlContainer
和 COleControlSite
物件實作。
語法
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
式中釋出。
覆寫此函式以自定義此程式。