実行時に指定されたコントロールはどのように読み込みますか?

更新 : 2007 年 11 月

コントロールを動的に読み込むには、"AtlAxWin80" ホスト ウィンドウを作成し、このウィンドウでホストするコントロールを指定する必要があります。主に次の 2 つの方法があります。

  1. 標準のウィンドウ作成 API と ATL ホスト API を使用します。この方法については、サポート技術情報の「HOWTO: Adding ATL Control Containment Support to Any Window (Q192560)」を参照してください。サポート技術情報の文書は、MSDN ライブラリまたは https://support.microsoft.com で参照できます。

  2. 次の説明に従って CAxWindow クラスを使用します。

    • AtlAxWinInit が呼び出されていることを確認します。

      AtlAxWinInit();
      

      AtlAxWinInit は、コントロール ホスト コードを初期化します。

    • CAxWindow オブジェクトを作成します。

      CAxWindow wnd;
      

      CAxWindow は、CWindow から派生したラッパーであり、"AtlAxWin80" ウィンドウを作成して操作します。

    • Create を呼び出して、ホスト ウィンドウとコントロールを作成します。

      RECT rect = { 0, 0, 100, 100 };
      wnd.Create(m_hWnd, rect, _T("MSCAL.Calendar"), WS_CHILD | WS_VISIBLE | 
         WS_CLIPSIBLINGS | WS_CLIPCHILDREN, WS_EX_CLIENTEDGE);
      

      Create 関数に渡すウィンドウ タイトル (3 番目のパラメータ) は、作成するコントロールを識別する文字列です。この文字列は、CLSID (中かっこで囲む)、ProgID、URL、または生の HTML (先頭に MSHTML: を付ける) です。URL または生の HTML を指定すると、Web ブラウザにこの情報が読み込まれます。

コントロールの有効期間については、「コントロールはどのように破棄しますか?」を参照してください。

参照

概念

ATL コントロール コンテインメント : Q & A 集