実行時に指定されたコントロールはどのように読み込みますか?
更新 : 2007 年 11 月
コントロールを動的に読み込むには、"AtlAxWin80" ホスト ウィンドウを作成し、このウィンドウでホストするコントロールを指定する必要があります。主に次の 2 つの方法があります。
標準のウィンドウ作成 API と ATL ホスト API を使用します。この方法については、サポート技術情報の「HOWTO: Adding ATL Control Containment Support to Any Window (Q192560)」を参照してください。サポート技術情報の文書は、MSDN ライブラリまたは https://support.microsoft.com で参照できます。
次の説明に従って 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 ブラウザにこの情報が読み込まれます。
コントロールの有効期間については、「コントロールはどのように破棄しますか?」を参照してください。