アクティベーション (C++)
更新 : 2007 年 11 月
ここでは、OLE アイテムをビジュアル編集するときのアクティベーションの役割について説明します。コンテナ ドキュメントに埋め込まれた OLE アイテムを使用するときは、まずアイテムをダブルクリックします。この操作によって、アイテムがアクティブになります。通常、アクティベーションは編集時に行われます。アイテムがアクティブになると、フレーム ウィンドウのメニューとツール バーの一部が OLE アイテムを作成したサーバー アプリケーションのメニューとツール バーに置き換わります。これは埋め込み先編集の有効化と呼ばれる機能であり、ユーザーはコンテナ アプリケーションのドキュメント ウィンドウのままで、複合ドキュメント内に埋め込まれているアイテムを編集できます。
別のウィンドウを開いて、ドキュメント中に埋め込まれた OLE アイテムを編集することもできます。コンテナ アプリケーションもサーバー アプリケーションも、埋め込み先編集の有効化をサポートしていない場合は、この方法で編集します。この編集方法では、ユーザーが埋め込みアイテムをダブルクリックすると、サーバー アプリケーションは別のウィンドウを開いて、埋め込みアイテムを独自のドキュメントとして表示します。ユーザーはこのウィンドウでアイテムを編集できます。編集が終わると、ユーザーはサーバー アプリケーションを閉じて、コンテナ アプリケーションに戻ります。
または、[編集] メニューの [開く] で編集します。この場合は、別のウィンドウにオブジェクトが表示されます。
メモ : |
---|
OLE Version 1 では独立したウィンドウを使って埋め込みアイテムを編集する方法が標準だったので、OLE アプリケーションによってはこの編集方法しかサポートしていない場合があります。 |
埋め込み先編集の有効化は、ドキュメント主体の編集というコンセプトに基づいてデザインされている編集技法です。ユーザーは複合ドキュメントを 1 つの操作対象として扱うことができるので、アプリケーションを切り替える必要がありません。ただし、埋め込み先編集の有効化は埋め込みアイテムのみを対象としているので、リンク アイテムは編集できません。リンク アイテムは別のウィンドウで編集する必要があります。これは、リンク アイテムが実際には別の場所に保存されているからです。リンク アイテムの編集場所は、データの実際のコンテキスト内、つまりデータの保存場所です。リンク アイテムを編集するときは別のウィンドウが開かれるので、ユーザーはそのアイテムが別のドキュメントに保存されていることがわかります。
MFC では、埋め込み先編集の有効化の入れ子をサポートしていません。コンテナ/サーバー アプリケーションをビルドし、そのコンテナとサーバーを別のコンテナに埋め込んで埋め込み先編集をしようとしても、埋め込まれているオブジェクトをアクティブにすることはできません。
ユーザーが埋め込みアイテムをダブルクリックしたときのアイテムの動作は、アイテムに対して定義されている動詞によります。詳細については、「アクティベーション : 動詞」を参照してください。