次の方法で共有


コンテナー : コンテナーの実装

この技術情報はコンテナーを実行する手順の概要と、コンテナーの実装に関する詳細な説明を提供するそのほかの技術情報をポイントします。また、がこれらの機能を説明する技術情報実行する必要がある省略可能な OLE 機能の一覧を示します。

CWinApp 派生クラスを準備するには

  1. InitInstance のメンバー関数の AfxOleInit を呼び出して、 OLE ライブラリを初期化します。

  2. メニューを割り当てるに InitInstanceCDocTemplate::SetContainerInfo をダイヤル埋め込みアイテムがアクティブ化された埋め込みときに、アクセラレータのリソースが使用されます。このトピックの詳細については、 アクティベーションを参照してください。

これらの機能は、コンテナー アプリケーションを作成するには、 MFC アプリケーション ウィザードを使用すると自動的に提供されます。MFC EXE のプログラムの作成を参照してください。

ビュー クラスを準備するには

  1. ポインターを押しながら、選択した項目複数選択をサポートする場合、または選択した項目へのポインターのリストを追跡します。OnDraw の関数はすべての OLE 項目を描画する必要があります。

  2. このパラメーターに渡される項目が現在選択されているかどうかを確認するに IsSelected をオーバーライドします。

  3. オブジェクトの挿入 のダイアログ ボックスを表示するに OnInsertObject のメッセージ ハンドラーを実装します。

  4. ビューから埋め込み先編集の OLE 埋め込みの項目にフォーカスをコピーするに OnSetFocus のメッセージ ハンドラーを実装します。

  5. 含むビューの変更を反映するように四角形を変更する必要があります。 OLE 埋め込みアイテムを通知するために OnSize のメッセージ ハンドラーを実装します。

これらの機能の実装が 1 アプリケーションから次に大幅に異なるため、アプリケーション ウィザードは、基本実装のみです。正しく機能するようにアプリケーションを取得するために、これらの関数をカスタマイズする必要があります。この例については、 コンテナー サンプルを参照してください。

処理する埋め込まれている項目とリンク

  1. COleClientItemからクラスを派生します。このクラスのオブジェクトは、埋め込まれたまたは OLE ドキュメントにリンクされた項目を表します。

  2. オーバーライド OnChangeOnChangeItemPositionOnGetItemPosition。これらの関数は、サイズ変更、配置、および埋め込まれた変更とリンク アイテム処理します。

アプリケーション ウィザードによってクラスを派生しますが、場合 OnChange 、前の手順の手順 2 の値を示す他の関数をオーバーライドする必要があります。スケルトン実装は、これらの関数は 1 アプリケーションから次異なる方法で実装されるため、ほとんどのアプリケーションにカスタマイズする必要があります。この例については、 MFC のサンプル DRAWCLIコンテナーを参照してください。

OLE サポートするには、コンテナー アプリケーションのメニュー構造にいくつかの項目を追加します。これらの詳細については、 メニューとリソース: コンテナーの加算を参照してください。

また、コンテナー アプリケーションの次の機能をサポートしたい場合があります:

  • 埋め込みアイテムの編集時における埋め込み先編集の有効化。

    詳細については、 アクティベーションを参照してください。

  • サーバー アプリケーションからの選択をドラッグ アンド ドロップして OLE アイテムの作成。

    詳細については、 ドラッグ アンド ドロップ (OLE)を参照してください。

  • 埋め込みオブジェクトまたは組み合わせのコンテナー/サーバー アプリケーションへのリンク。

    詳細については、 コンテナー: 高度な機能を参照してください。

参照

概念

コンテナー

コンテナー : クライアント アイテム