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
式中釋出。
覆寫此函式以自訂此程式。
另請參閱
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: