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
要件
Header: 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
リソースへのポインター。
戻り値
コントロールが正常に作成された場合は 0 以外。それ以外の場合は 0。
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
構造体へのポインター。
戻り値
メッセージが処理される場合は 0 以外。それ以外の場合は 0。
解説
IsDialogMessage
の既定の動作は、キーボード メッセージをチェックし、対応するダイアログ ボックスの選択に変換することです。 たとえば、Tab キーを押すと、次のコントロールまたはコントロールのグループが選択されます。
指定したダイアログに送信されるメッセージのカスタム動作を提供するには、この関数をオーバーライドします。
COccManager::IsLabelControl
指定したコントロールがラベル コントロールかどうかを判断するには、この関数を呼び出します。
static BOOL AFX_CDECL IsLabelControl(CWnd* pWnd);
static BOOL AFX_CDECL IsLabelControl(COleControlSiteOrWnd* pWnd);
パラメーター
pWnd
コントロールを含むウィンドウへのポインター。
戻り値
コントロールがラベルの場合は 0 以外。それ以外の場合は 0
解説
ラベル コントロールは、並べ替えの次のコントロールのラベルのように機能します。
COccManager::IsMatchingMnemonic
この関数を呼び出して、現在のニーモニックがコントロールによって表されるニーモニックと一致するかどうかを判断します。
static BOOL AFX_CDECL IsMatchingMnemonic(
CWnd* pWnd,
LPMSG lpMsg);
static BOOL AFX_CDECL IsMatchingMnemonic(
COleControlSiteOrWnd* pWnd,
LPMSG lpMsg);
パラメーター
pWnd
コントロールを含むウィンドウへのポインター。
lpMsg
一致するニーモニックを含むメッセージへのポインター。
戻り値
ニーモニックがコントロールと一致する場合は 0 以外。それ以外の場合は 0
解説
COccManager::OnEvent
指定したイベントを処理するためにフレームワークによって呼び出されます。
virtual BOOL OnEvent(
CCmdTarget* pCmdTarget,
UINT idCtrl,
AFX_EVENT* pEvent,
AFX_CMDHANDLERINFO* pHandlerInfo);
パラメーター
pCmdTarget
イベントを処理しようとしている CCmdTarget
オブジェクトへのポインター
idCtrl
コントロールのリソース ID。
pEvent
処理されるイベント。
pHandlerInfo
NULL でない場合、OnEvent
はコマンドをディスパッチする代わりに、AFX_CMDHANDLERINFO
構造体のpTarget
およびpmf
メンバーを入力します。 通常、このパラメーターは NULL にする必要があります。
戻り値
イベントが処理された場合は 0 以外、それ以外の場合は 0。
解説
既定のイベント処理プロセスをカスタマイズするには、この関数をオーバーライドします。
COccManager::P reCreateDialog
実際のダイアログ ボックスを作成する前に、ActiveX コントロールのダイアログ テンプレートを処理するためにフレームワークによって呼び出されます。
virtual const DLGTEMPLATE* PreCreateDialog(
_AFX_OCC_DIALOG_INFO* pOccDialogInfo,
const DLGTEMPLATE* pOrigTemplate);
パラメーター
pOccDialogInfo
ダイアログ テンプレートと、ダイアログによってホストされている ActiveX コントロールに関する情報を含む _AFX_OCC_DIALOG_INFO
構造体。
pOrigTemplate
ダイアログ ボックスの作成に使用するダイアログ テンプレートへのポインター。
戻り値
ダイアログ ボックスの作成に使用されるダイアログ テンプレート構造へのポインター。
解説
既定の動作では、 SplitDialogTemplate
を呼び出して ActiveX コントロールが存在するかどうかを判断し、結果のダイアログ テンプレートを返します。
ActiveX コントロールをホストするダイアログ ボックスを作成するプロセスをカスタマイズするには、この関数をオーバーライドします。
COccManager::P ostCreateDialog
ダイアログ テンプレートに割り当てられたメモリを解放するためにフレームワークによって呼び出されます。
virtual void PostCreateDialog(_AFX_OCC_DIALOG_INFO* pOccDialogInfo);
パラメーター
pOccDialogInfo
ダイアログ テンプレートと、ダイアログによってホストされている ActiveX コントロールに関する情報を含む _AFX_OCC_DIALOG_INFO
構造体。
解説
このメモリは、 SplitDialogTemplate
の呼び出しによって割り当てられ、ダイアログ ボックスでホストされている ActiveX コントロールに使用されました。
ダイアログ ボックス オブジェクトで使用されるリソースをクリーンアップするプロセスをカスタマイズするには、この関数をオーバーライドします。
COccManager::SetDefaultButton
コントロールを既定のボタンとして設定するには、この関数を呼び出します。
static void AFX_CDECL SetDefaultButton(
CWnd* pWnd,
BOOL bDefault);
パラメーター
pWnd
コントロールを含むウィンドウへのポインター。
bDefault
コントロールを既定のボタンにする必要がある場合は 0 以外。それ以外の場合は 0。
戻り値
成功した場合は 0 以外を返します。それ以外の場合は 0 を返します。
解説
Note
コントロールには、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 が返されます。
Note
新しいテンプレートに割り当てられたメモリは、 PostCreateDialog
関数で解放されます。
このプロセスをカスタマイズするには、この関数をオーバーライドします。