次の方法で共有


メニューとリソース : メニューの結合

この技術情報では、 OLE ドキュメントのアプリケーションがビジュアル編集、埋め込み先編集の有効化を適切に処理するのに必要な手順を詳しく説明します。埋め込み先編集の有効化はコンテナーとサーバーの両方 (コンポーネント)アプリケーションのチャレンジが発生します。ユーザーが同じフレーム ウィンドウに (コンテナー ドキュメントで)残りましたりただし、実際には他のアプリケーション サーバー ()を実行します。これは、コンテナーのリソースとサーバー アプリケーション間の調整が必要です。

この技術情報で説明するトピックは次のとおりです。:

  • メニューのレイアウト

  • ツールバーとステータス バー

メニューのレイアウト

まず、メニューのレイアウトを調整することです。詳細については、 Windows SDKの メニューのプログラミングの考慮事項Menu Creation " を参照してください。

コンテナー アプリケーションは埋め込み項目をアクティブにする場合に使用する新しいメニューを作成する必要があります。少なくとも、このメニューは示されている順序で次から構成されます:

  1. ファイルが開いている場合に、使用するものと同じファイル メニュー。(通常は他のメニュー項目は、次の項目の前に配置されません)。

  2. 2 個の連続した区切り記号。

  3. ファイルが開いている場合に、使用するものと同じペイン メニュー (だけ MDI アプリケーションのコンテナー アプリケーション)。あるアプリケーションでは、埋め込み項目をアクティブにするとメニューに残り、このグループに属する別のメニューには、オプションのメニューなど、ある場合があります。

    [!メモ]

    コンテナー ドキュメントのビューに影響するズームなどの他のメニューがある場合があります。これらのコンテナーのメニューでこのメニュー リソースの 2 種類の区切り記号の間に表示されます。

サーバー コンポーネント ()アプリケーションは、埋め込み先編集の有効化の新しいメニューを作成する必要があります。これはなしでファイルが開かれますが、データではなくサーバーのドキュメントを処理するコンテナーに存在するファイルとウィンドウなどのメニュー項目、必要なときに使用されるメニューのようになります。通常、このメニューは、次の要素から構成されます:

  1. ファイルが開いている場合に、使用するものと同じの編集] メニュー。

  2. 区切り線

  3. SCRIBBLE サンプル アプリケーションのペンのメニューなどのメニューを編集するオブジェクト。

  4. 区切り線

  5. ヘルプ メニュー。

例については、コンテナーとサーバーを持つサンプル埋め込みのメニューのレイアウトを参照してください。各メニュー項目の詳細は例のさらに明確にするために削除されました。コンテナーの埋め込みのメニューに次のエントリがあります:

IDR_CONTAINERTYPE_CNTR_IP MENU PRELOAD DISCARDABLE 
BEGIN
    POPUP "&File C1"
    MENUITEM SEPARATOR
    POPUP "&Zoom C2"
    MENUITEM SEPARATOR
    POPUP "&Options C3"
    POPUP "&Window C3"
END

実行中の区切り記号はサーバーのメニューの最初の一部の場所に移動する必要があるかを示します。サーバーでのメニューの現在の外観と操作性:

IDR_SERVERTYPE_SRVR_IP MENU PRELOAD DISCARDABLE 
BEGIN
    POPUP "&Edit S1"
    MENUITEM SEPARATOR
    POPUP "&Format S2"
    MENUITEM SEPARATOR
    POPUP "&Help S3"
END

次の区切り記号はコンテナーのメニュー項目の 2 番目のグループの場所に移動する必要があるかを示します。このサーバーからのオブジェクトがこのようにこのコンテナーの内のアクティブ化した設定されている場合に表示されるメニューの構造:

BEGIN
    POPUP "&File C1"
    POPUP "&Edit S1"
    POPUP "&Zoom C2"
    POPUP "&Format S2"
    POPUP "&Options C3
    POPUP "&Window C3"
    POPUP "&Help S3"
END

確認できるように、区切り記号は、各アプリケーションのメニューの異なるグループに置き換えられました。

埋め込み先のメニューに関連付けられているアクセラレータ テーブルには、サーバー アプリケーションが用意する必要があります。コンテナーは、独自のアクセラレータ テーブルに組み込まれています。

埋め込み項目をアクティブにすると、フレームワークは埋め込みのメニューを読み込みます。また、埋め込み先編集の有効化を、区切り記号です。メニューのサーバー アプリケーションに要求し、挿入します。これはメニューがどのように組み合わせる方法です。ファイルとペインの配置のアクティブ化のコンテナーからメニューを取得し、項目のアクティブ化のサーバーからメニューを取得します。

ツールバーとステータス バー

サーバー アプリケーションでは、新しいツールバーを作成し、個別のファイルにビットマップを保存する必要があります。アプリケーション ウィザードで生成されたアプリケーションは ITOOLBAR.BMP というファイルにこのビットマップを保存します。新しいツールバーは、サーバー上の項目をアクティブにする置換は、通常のツールバーと同じ項目を含める必要がコンテナーに存在するファイルとペイン メニュー項目を表すアイコンを削除すると、コンテナー アプリケーションのをツールバー。

このツールバーは COleIPFrameWnd- アプリケーション ウィザードで作成する派生クラスで読み込まれます。ステータス バーはコンテナー アプリケーションによって処理されます。埋め込み先フレーム ウィンドウの実装の詳細については、 サーバー: サーバーの実装を参照してください。

参照

概念

メニューとリソース (OLE)

アクティベーション (C++)

サーバー

コンテナー