次の方法で共有


サーバー : 埋め込み先フレーム ウィンドウの実装

この技術情報はサーバー アプリケーションの作成にアプリケーション ウィザードを使用するビジュアル編集サーバー アプリケーションの埋め込み先フレーム ウィンドウを実行する必要があるものについて説明しますする。この技術情報で説明した手順に従って、の代わりにアプリケーション ウィザードで生成されたアプリケーションを、 Visual C++ に用意されているサンプルの既存の埋め込み先フレームウィンドウ クラスを使用できます。

埋め込み先フレームウィンドウ クラスを宣言するには

  1. COleIPFrameWndから埋め込み先フレームウィンドウ クラスを派生します。

    • クラスのヘッダー ファイルに DECLARE_DYNCREATE のマクロを使用します。

    • クラス実装 (.cpp)ファイルに IMPLEMENT_DYNCREATE のマクロを使用します。これは、このクラスのオブジェクトは、フレームワークによって作成されるようにします。

  2. フレームウィンドウ クラスの COleResizeBar のメンバーを宣言します。これは、サーバー アプリケーションでのサイズ変更をサポートする場合に必要です。

    これを定義する場合は、 OnCreate のメッセージ ハンドラー ( プロパティ ペインを使用して)として宣言し、 COleResizeBar のメンバーの 生成(&&C),create,作成,生成 をダイヤルします。

  3. ツールバーがある場合は、フレームウィンドウ クラスの CToolBar のメンバーを宣言します。

    サーバーがアクティブな設定されている場合、ツールバーを作成するに OnCreateControlBars のメンバー関数をオーバーライドします。次に例を示します。

    BOOL CInPlaceFrame::OnCreateControlBars(CFrameWnd* pWndFrame, CFrameWnd* pWndDoc)
    {
       UNREFERENCED_PARAMETER(pWndDoc);
    
       // Set owner to this window, so messages are delivered to correct app
       m_wndToolBar.SetOwner(this);
    
       // Create toolbar on client's frame window
       if (!m_wndToolBar.CreateEx(pWndFrame, TBSTYLE_FLAT,WS_CHILD | WS_VISIBLE | CBRS_TOP
          | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
          !m_wndToolBar.LoadToolBar(IDR_SRVR_INPLACE))
       {
          TRACE0("Failed to create toolbar\n");
          return FALSE;
       }
    
       // TODO: Delete these three lines if you don't want the toolbar to be dockable
       m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
       pWndFrame->EnableDocking(CBRS_ALIGN_ANY);
       pWndFrame->DockControlBar(&m_wndToolBar);
    
       return TRUE;
    }
    

    手順 5. に従ってこのコードの説明を参照してください。

  4. メイン .cpp ファイルにこの埋め込み先フレームウィンドウ クラスのヘッダー ファイルを追加します。

  5. アプリケーションのクラスの InitInstance では、を開き、埋め込み先編集に使用するリソースと埋め込み先フレーム ウィンドウを指定するドキュメント テンプレート オブジェクトの SetServerInfo 関数を呼び出しますします。

一連の if ステートメントの関数呼び出しでは、サーバーが指定したリソースからツールバーを作成します。この時点で、ツールバーはコンテナーの階層ペインの一部です。このツールバーは CToolBarから派生するため、所有者を変更しない場合、所有者、コンテナー アプリケーションのフレーム ウィンドウにメッセージを渡します。そのため、 SetOwner への呼び出しが必要です。この呼び出しは、コマンドがサーバーの埋め込み先フレーム ウィンドウである送信されるサーバーに渡されますメッセージをウィンドウを変更します。これは、サーバーが提供するツールバーの操作に応答するようにします。

ツールバー ビットマップの ID は、サーバー アプリケーションで定義される他の埋め込みリソースと同じである必要があります。詳細については メニューとリソース: サーバー加算 を参照してください。

詳細については、 クラス ライブラリ リファレンスCOleIPFrameWndCOleResizeBarCDocTemplate::SetServerInfo を参照してください。

参照

概念

サーバー

サーバー : サーバーの実装

サーバー : サーバー ドキュメントの実装

サーバー : サーバー アイテム