COleClientItem::OnInsertMenus
更新 : 2007 年 11 月
埋め込み先編集の有効化時に、空のメニューにコンテナ アプリケーションのメニューを挿入するため、フレームワークが呼び出します。
virtual void OnInsertMenus(
CMenu* pMenuShared,
LPOLEMENUGROUPWIDTHS lpMenuWidths
);
パラメータ
pMenuShared
空のメニューへのポインタ。lpMenuWidths
次のメニュー グループ、[ファイル]、[編集]、[コンテナ]、[オブジェクト]、[ウィンドウ]、[ヘルプ] のそれぞれにメニューがいくつ存在するかを示す 6 つの LONG 値の配列へのポインタ。[ヘルプ]、[コンテナ] および [ウィンドウ] の 3 つのメニュー グループに関しては、コンテナ アプリケーションが設定をする必要があります。この配列では、要素 0、2、4 に対応します。
解説
このメニューは、その後サーバーに渡され、サーバー独自のメニューが挿入されて、コンポジット メニューを形成します。この関数は、いくつかのコンポジット メニューを構築するため繰り返し呼び出すことができます。
既定の実装では、埋め込み先のコンテナのメニュー、つまり [ファイル]、[コンテナ]、[ウィンドウ] の各メニュー グループを pMenuShared に挿入します。CDocTemplate::SetContainerInfo はこのメニュー リソースを設定するのに使われます。既定の実装では、メニュー リソースによって、lpMenuWidths の要素 0、2、4 に適切な値を設定します。既定の実装がアプリケーションに適合しないときはこの関数をオーバーライドします。アプリケーションがドキュメント型に関連付けられたリソースのドキュメント テンプレートを使っていない場合などです。この関数をオーバーライドするときは、OnSetMenu および OnRemoveMenus もオーバーライドする必要があります。これは、オーバライド可能な高度な関数です。
詳細については、Windows SDK の「IOleInPlaceFrame::InsertMenus」を参照してください。
必要条件
ヘッダー : afxole.h