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
リソースへのポインター。
戻り値
コントロールが正常に作成された場合は 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
コマンドをpTarget
ディスパッチするのではなく、構造体のAFX_CMDHANDLERINFO
メンバーとpmf
メンバーを入力します。 通常、このパラメーターは NULL にする必要があります。
戻り値
イベントが処理された場合は 0 以外、それ以外の場合は 0。
解説
既定のイベント処理プロセスをカスタマイズするには、この関数をオーバーライドします。
COccManager::P reCreateDialog
実際のダイアログ ボックスを作成する前に、ActiveX コントロールのダイアログ テンプレートを処理するためにフレームワークによって呼び出されます。
virtual const DLGTEMPLATE* PreCreateDialog(
_AFX_OCC_DIALOG_INFO* pOccDialogInfo,
const DLGTEMPLATE* pOrigTemplate);
パラメーター
pOccDialogInfo
_AFX_OCC_DIALOG_INFO
ダイアログ テンプレートと、ダイアログによってホストされる ActiveX コントロールに関する情報を含む構造体。
pOrigTemplate
ダイアログ ボックスの作成に使用するダイアログ テンプレートへのポインター。
戻り値
ダイアログ ボックスの作成に使用されるダイアログ テンプレート構造へのポインター。
解説
既定の動作では、ActiveX コントロールが存在するかどうかを判断する SplitDialogTemplate
呼び出しが行われ、結果のダイアログ テンプレートが返されます。
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 以外。それ以外の場合は 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
解放されます。
このプロセスをカスタマイズするには、この関数をオーバーライドします。
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示